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_TYPE_CACHE_H_ | 5 #ifndef V8_TYPE_CACHE_H_ |
6 #define V8_TYPE_CACHE_H_ | 6 #define V8_TYPE_CACHE_H_ |
7 | 7 |
8 #include "src/types.h" | 8 #include "src/types.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 CreateRange(0.0, FixedArray::kMaxLength), Type::TaggedSigned()); | 53 CreateRange(0.0, FixedArray::kMaxLength), Type::TaggedSigned()); |
54 | 54 |
55 // The FixedDoubleArray::length property always containts a smi in the range | 55 // The FixedDoubleArray::length property always containts a smi in the range |
56 // [0, FixedDoubleArray::kMaxLength]. | 56 // [0, FixedDoubleArray::kMaxLength]. |
57 Type* const kFixedDoubleArrayLengthType = CreateNative( | 57 Type* const kFixedDoubleArrayLengthType = CreateNative( |
58 CreateRange(0.0, FixedDoubleArray::kMaxLength), Type::TaggedSigned()); | 58 CreateRange(0.0, FixedDoubleArray::kMaxLength), Type::TaggedSigned()); |
59 | 59 |
60 // The JSArray::length property always contains a tagged number in the range | 60 // The JSArray::length property always contains a tagged number in the range |
61 // [0, kMaxUInt32]. | 61 // [0, kMaxUInt32]. |
62 Type* const kJSArrayLengthType = | 62 Type* const kJSArrayLengthType = |
63 CreateNative(CreateRange(0.0, kMaxUInt32), Type::Tagged()); | 63 CreateNative(Type::Unsigned32(), Type::Tagged()); |
64 | 64 |
65 // The String::length property always contains a smi in the range | 65 // The String::length property always contains a smi in the range |
66 // [0, String::kMaxLength]. | 66 // [0, String::kMaxLength]. |
67 Type* const kStringLengthType = | 67 Type* const kStringLengthType = |
68 CreateNative(CreateRange(0.0, String::kMaxLength), Type::TaggedSigned()); | 68 CreateNative(CreateRange(0.0, String::kMaxLength), Type::TaggedSigned()); |
69 | 69 |
70 #define TYPED_ARRAY(TypeName, type_name, TYPE_NAME, ctype, size) \ | 70 #define TYPED_ARRAY(TypeName, type_name, TYPE_NAME, ctype, size) \ |
71 Type* const k##TypeName##Array = CreateArray(k##TypeName); | 71 Type* const k##TypeName##Array = CreateArray(k##TypeName); |
72 TYPED_ARRAYS(TYPED_ARRAY) | 72 TYPED_ARRAYS(TYPED_ARRAY) |
73 #undef TYPED_ARRAY | 73 #undef TYPED_ARRAY |
(...skipping 22 matching lines...) Expand all Loading... |
96 return Type::Range(min, max, zone()); | 96 return Type::Range(min, max, zone()); |
97 } | 97 } |
98 | 98 |
99 Zone* zone() { return &zone_; } | 99 Zone* zone() { return &zone_; } |
100 }; | 100 }; |
101 | 101 |
102 } // namespace internal | 102 } // namespace internal |
103 } // namespace v8 | 103 } // namespace v8 |
104 | 104 |
105 #endif // V8_TYPE_CACHE_H_ | 105 #endif // V8_TYPE_CACHE_H_ |
OLD | NEW |