OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 | 97 |
98 #define BITSET_TYPE_LIST(V) \ | 98 #define BITSET_TYPE_LIST(V) \ |
99 V(None, 0) \ | 99 V(None, 0) \ |
100 V(Null, 1 << 0) \ | 100 V(Null, 1 << 0) \ |
101 V(Undefined, 1 << 1) \ | 101 V(Undefined, 1 << 1) \ |
102 V(Boolean, 1 << 2) \ | 102 V(Boolean, 1 << 2) \ |
103 V(Smi, 1 << 3) \ | 103 V(Smi, 1 << 3) \ |
104 V(OtherSigned32, 1 << 4) \ | 104 V(OtherSigned32, 1 << 4) \ |
105 V(Unsigned32, 1 << 5) \ | 105 V(Unsigned32, 1 << 5) \ |
106 V(Double, 1 << 6) \ | 106 V(Double, 1 << 6) \ |
107 V(Symbol, 1 << 7) \ | 107 V(Float32x4, 1 << 7) \ |
108 V(InternalizedString, 1 << 8) \ | 108 V(Int32x4, 1 << 8) \ |
109 V(OtherString, 1 << 9) \ | 109 V(Symbol, 1 << 9) \ |
110 V(Undetectable, 1 << 10) \ | 110 V(InternalizedString, 1 << 10) \ |
111 V(Array, 1 << 11) \ | 111 V(OtherString, 1 << 11) \ |
112 V(Function, 1 << 12) \ | 112 V(Undetectable, 1 << 12) \ |
113 V(RegExp, 1 << 13) \ | 113 V(Array, 1 << 13) \ |
114 V(OtherObject, 1 << 14) \ | 114 V(Function, 1 << 14) \ |
115 V(Proxy, 1 << 15) \ | 115 V(RegExp, 1 << 15) \ |
116 V(Internal, 1 << 16) \ | 116 V(OtherObject, 1 << 16) \ |
| 117 V(Proxy, 1 << 17) \ |
| 118 V(Internal, 1 << 18) \ |
117 \ | 119 \ |
118 V(Oddball, kBoolean | kNull | kUndefined) \ | 120 V(Oddball, kBoolean | kNull | kUndefined) \ |
119 V(Signed32, kSmi | kOtherSigned32) \ | 121 V(Signed32, kSmi | kOtherSigned32) \ |
120 V(Number, kSigned32 | kUnsigned32 | kDouble) \ | 122 V(Number, kSigned32 | kUnsigned32 | kDouble) \ |
121 V(String, kInternalizedString | kOtherString) \ | 123 V(String, kInternalizedString | kOtherString) \ |
122 V(UniqueName, kSymbol | kInternalizedString) \ | 124 V(UniqueName, kSymbol | kInternalizedString) \ |
123 V(Name, kSymbol | kString) \ | 125 V(Name, kSymbol | kString) \ |
124 V(NumberOrString, kNumber | kString) \ | 126 V(NumberOrString, kNumber | kString) \ |
125 V(Object, kUndetectable | kArray | kFunction | \ | 127 V(Object, kUndetectable | kArray | kFunction | \ |
126 kRegExp | kOtherObject) \ | 128 kRegExp | kOtherObject) \ |
127 V(Receiver, kObject | kProxy) \ | 129 V(Receiver, kObject | kProxy) \ |
128 V(Allocated, kDouble | kName | kReceiver) \ | 130 V(Allocated, kDouble | kFloat32x4 | kInt32x4 | kName | kReceiver) \ |
129 V(Any, kOddball | kNumber | kAllocated | kInternal) \ | 131 V(Any, kOddball | kNumber | kAllocated | kInternal) \ |
130 V(NonNumber, kAny - kNumber) \ | 132 V(NonNumber, kAny - kNumber) \ |
131 V(Detectable, kAllocated - kUndetectable) | 133 V(Detectable, kAllocated - kUndetectable) |
132 | 134 |
133 | 135 |
134 class Type : public Object { | 136 class Type : public Object { |
135 public: | 137 public: |
136 #define DEFINE_TYPE_CONSTRUCTOR(type, value) \ | 138 #define DEFINE_TYPE_CONSTRUCTOR(type, value) \ |
137 static Type* type() { return from_bitset(k##type); } | 139 static Type* type() { return from_bitset(k##type); } |
138 BITSET_TYPE_LIST(DEFINE_TYPE_CONSTRUCTOR) | 140 BITSET_TYPE_LIST(DEFINE_TYPE_CONSTRUCTOR) |
139 #undef DEFINE_TYPE_CONSTRUCTOR | 141 #undef DEFINE_TYPE_CONSTRUCTOR |
140 | 142 |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 static Bounds NarrowUpper(Bounds b, Handle<Type> t, Isolate* isl) { | 330 static Bounds NarrowUpper(Bounds b, Handle<Type> t, Isolate* isl) { |
329 return Bounds( | 331 return Bounds( |
330 handle(Type::Intersect(b.lower, t), isl), | 332 handle(Type::Intersect(b.lower, t), isl), |
331 handle(Type::Intersect(b.upper, t), isl)); | 333 handle(Type::Intersect(b.upper, t), isl)); |
332 } | 334 } |
333 }; | 335 }; |
334 | 336 |
335 } } // namespace v8::internal | 337 } } // namespace v8::internal |
336 | 338 |
337 #endif // V8_TYPES_H_ | 339 #endif // V8_TYPES_H_ |
OLD | NEW |