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 676 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
687 Representation::Tagged(), any_type); | 687 Representation::Tagged(), any_type); |
688 } | 688 } |
689 | 689 |
690 | 690 |
691 TEST(GeneralizeRepresentationHeapObjectToHeapObject) { | 691 TEST(GeneralizeRepresentationHeapObjectToHeapObject) { |
692 CcTest::InitializeVM(); | 692 CcTest::InitializeVM(); |
693 v8::HandleScope scope(CcTest::isolate()); | 693 v8::HandleScope scope(CcTest::isolate()); |
694 Isolate* isolate = CcTest::i_isolate(); | 694 Isolate* isolate = CcTest::i_isolate(); |
695 Handle<HeapType> any_type = HeapType::Any(isolate); | 695 Handle<HeapType> any_type = HeapType::Any(isolate); |
696 | 696 |
697 const int kMaxClassesPerFieldType = 5; | 697 const int kMaxClassesPerFieldType = 1; |
698 Handle<HeapType> current_type = | 698 Handle<HeapType> current_type = |
699 HeapType::Class(Map::Create(isolate, 0), isolate); | 699 HeapType::Class(Map::Create(isolate, 0), isolate); |
700 | 700 |
701 for (int i = 0; i < kMaxClassesPerFieldType; i++) { | 701 for (int i = 0; i < kMaxClassesPerFieldType; i++) { |
702 Handle<HeapType> new_type = | 702 Handle<HeapType> new_type = |
703 HeapType::Class(Map::Create(isolate, 0), isolate); | 703 HeapType::Class(Map::Create(isolate, 0), isolate); |
704 | 704 |
705 Handle<HeapType> expected_type = | 705 Handle<HeapType> expected_type = |
706 (i < kMaxClassesPerFieldType - 1) | 706 (i < kMaxClassesPerFieldType - 1) |
707 ? HeapType::Union(current_type, new_type, isolate) | 707 ? HeapType::Union(current_type, new_type, isolate) |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1063 value_type, Representation::Tagged(), any_type); | 1063 value_type, Representation::Tagged(), any_type); |
1064 } | 1064 } |
1065 | 1065 |
1066 | 1066 |
1067 TEST(ReconfigureDataFieldAttribute_GeneralizeRepresentationHeapObjToHeapObj) { | 1067 TEST(ReconfigureDataFieldAttribute_GeneralizeRepresentationHeapObjToHeapObj) { |
1068 CcTest::InitializeVM(); | 1068 CcTest::InitializeVM(); |
1069 v8::HandleScope scope(CcTest::isolate()); | 1069 v8::HandleScope scope(CcTest::isolate()); |
1070 Isolate* isolate = CcTest::i_isolate(); | 1070 Isolate* isolate = CcTest::i_isolate(); |
1071 Handle<HeapType> any_type = HeapType::Any(isolate); | 1071 Handle<HeapType> any_type = HeapType::Any(isolate); |
1072 | 1072 |
1073 const int kMaxClassesPerFieldType = 5; | 1073 const int kMaxClassesPerFieldType = 1; |
1074 Handle<HeapType> current_type = | 1074 Handle<HeapType> current_type = |
1075 HeapType::Class(Map::Create(isolate, 0), isolate); | 1075 HeapType::Class(Map::Create(isolate, 0), isolate); |
1076 | 1076 |
1077 for (int i = 0; i < kMaxClassesPerFieldType; i++) { | 1077 for (int i = 0; i < kMaxClassesPerFieldType; i++) { |
1078 Handle<HeapType> new_type = | 1078 Handle<HeapType> new_type = |
1079 HeapType::Class(Map::Create(isolate, 0), isolate); | 1079 HeapType::Class(Map::Create(isolate, 0), isolate); |
1080 | 1080 |
1081 Handle<HeapType> expected_type = | 1081 Handle<HeapType> expected_type = |
1082 (i < kMaxClassesPerFieldType - 1) | 1082 (i < kMaxClassesPerFieldType - 1) |
1083 ? HeapType::Union(current_type, new_type, isolate) | 1083 ? HeapType::Union(current_type, new_type, isolate) |
(...skipping 939 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2023 Handle<AccessorPair> pair = CreateAccessorPair(true, true); | 2023 Handle<AccessorPair> pair = CreateAccessorPair(true, true); |
2024 TransitionToAccessorConstantOperator transition_op(pair); | 2024 TransitionToAccessorConstantOperator transition_op(pair); |
2025 | 2025 |
2026 SameMapChecker checker; | 2026 SameMapChecker checker; |
2027 TestTransitionTo(transition_op, transition_op, checker); | 2027 TestTransitionTo(transition_op, transition_op, checker); |
2028 } | 2028 } |
2029 | 2029 |
2030 | 2030 |
2031 // 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. |
2032 // TEST(TransitionAccessorConstantToAnotherAccessorConstant) | 2032 // TEST(TransitionAccessorConstantToAnotherAccessorConstant) |
OLD | NEW |