OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef V8_TYPES_H_ | 5 #ifndef V8_TYPES_H_ |
6 #define V8_TYPES_H_ | 6 #define V8_TYPES_H_ |
7 | 7 |
8 #include "src/conversions.h" | 8 #include "src/conversions.h" |
9 #include "src/handles.h" | 9 #include "src/handles.h" |
10 #include "src/objects.h" | 10 #include "src/objects.h" |
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
757 static Type* Of(double value, Zone* zone) { | 757 static Type* Of(double value, Zone* zone) { |
758 return BitsetType::New(BitsetType::ExpandInternals(BitsetType::Lub(value))); | 758 return BitsetType::New(BitsetType::ExpandInternals(BitsetType::Lub(value))); |
759 } | 759 } |
760 static Type* Of(i::Object* value, Zone* zone) { | 760 static Type* Of(i::Object* value, Zone* zone) { |
761 return BitsetType::New(BitsetType::ExpandInternals(BitsetType::Lub(value))); | 761 return BitsetType::New(BitsetType::ExpandInternals(BitsetType::Lub(value))); |
762 } | 762 } |
763 static Type* Of(i::Handle<i::Object> value, Zone* zone) { | 763 static Type* Of(i::Handle<i::Object> value, Zone* zone) { |
764 return Of(*value, zone); | 764 return Of(*value, zone); |
765 } | 765 } |
766 | 766 |
| 767 static Type* For(i::Map* map) { |
| 768 return BitsetType::New(BitsetType::ExpandInternals(BitsetType::Lub(map))); |
| 769 } |
| 770 static Type* For(i::Handle<i::Map> map) { return For(*map); } |
| 771 |
767 // Extraction of components. | 772 // Extraction of components. |
768 static Type* Representation(Type* t, Zone* zone); | 773 static Type* Representation(Type* t, Zone* zone); |
769 static Type* Semantic(Type* t, Zone* zone); | 774 static Type* Semantic(Type* t, Zone* zone); |
770 | 775 |
771 // Predicates. | 776 // Predicates. |
772 bool IsInhabited() { return BitsetType::IsInhabited(this->BitsetLub()); } | 777 bool IsInhabited() { return BitsetType::IsInhabited(this->BitsetLub()); } |
773 | 778 |
774 bool Is(Type* that) { return this == that || this->SlowIs(that); } | 779 bool Is(Type* that) { return this == that || this->SlowIs(that); } |
775 bool Maybe(Type* that); | 780 bool Maybe(Type* that); |
776 bool Equals(Type* that) { return this->Is(that) && that->Is(this); } | 781 bool Equals(Type* that) { return this->Is(that) && that->Is(this); } |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
973 | 978 |
974 bool Narrows(Bounds that) { | 979 bool Narrows(Bounds that) { |
975 return that.lower->Is(this->lower) && this->upper->Is(that.upper); | 980 return that.lower->Is(this->lower) && this->upper->Is(that.upper); |
976 } | 981 } |
977 }; | 982 }; |
978 | 983 |
979 } // namespace internal | 984 } // namespace internal |
980 } // namespace v8 | 985 } // namespace v8 |
981 | 986 |
982 #endif // V8_TYPES_H_ | 987 #endif // V8_TYPES_H_ |
OLD | NEW |