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 #include <iomanip> | 5 #include <iomanip> |
6 | 6 |
7 #include "src/types.h" | 7 #include "src/types.h" |
8 | 8 |
9 #include "src/handles-inl.h" | 9 #include "src/handles-inl.h" |
10 #include "src/ostreams.h" | 10 #include "src/ostreams.h" |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 case JS_TYPED_ARRAY_TYPE: | 212 case JS_TYPED_ARRAY_TYPE: |
213 case JS_DATA_VIEW_TYPE: | 213 case JS_DATA_VIEW_TYPE: |
214 case JS_SET_TYPE: | 214 case JS_SET_TYPE: |
215 case JS_MAP_TYPE: | 215 case JS_MAP_TYPE: |
216 case JS_SET_ITERATOR_TYPE: | 216 case JS_SET_ITERATOR_TYPE: |
217 case JS_MAP_ITERATOR_TYPE: | 217 case JS_MAP_ITERATOR_TYPE: |
218 case JS_WEAK_MAP_TYPE: | 218 case JS_WEAK_MAP_TYPE: |
219 case JS_WEAK_SET_TYPE: | 219 case JS_WEAK_SET_TYPE: |
220 case JS_PROMISE_TYPE: | 220 case JS_PROMISE_TYPE: |
221 case JS_BOUND_FUNCTION_TYPE: | 221 case JS_BOUND_FUNCTION_TYPE: |
222 if (map->is_undetectable()) return kUndetectable; | 222 if (map->is_undetectable()) return kOtherUndetectable; |
223 return kOtherObject; | 223 return kOtherObject; |
224 case JS_FUNCTION_TYPE: | 224 case JS_FUNCTION_TYPE: |
225 if (map->is_undetectable()) return kUndetectable; | 225 if (map->is_undetectable()) return kOtherUndetectable; |
226 return kFunction; | 226 return kFunction; |
227 case JS_REGEXP_TYPE: | 227 case JS_REGEXP_TYPE: |
228 return kOtherObject; // TODO(rossberg): there should be a RegExp type. | 228 return kOtherObject; // TODO(rossberg): there should be a RegExp type. |
229 case JS_PROXY_TYPE: | 229 case JS_PROXY_TYPE: |
230 return kProxy; | 230 return kProxy; |
231 case MAP_TYPE: | 231 case MAP_TYPE: |
232 // When compiling stub templates, the meta map is used as a place holder | |
233 // for the actual map with which the template is later instantiated. | |
234 // We treat it as a kind of type variable whose upper bound is Any. | |
235 // TODO(rossberg): for caching of CompareNilIC stubs to work correctly, | |
236 // we must exclude Undetectable here. This makes no sense, really, | |
237 // because it means that the template isn't actually parametric. | |
238 // Also, it doesn't apply elsewhere. 8-( | |
239 // We ought to find a cleaner solution for compiling stubs parameterised | |
240 // over type or class variables, esp ones with bounds... | |
241 return kDetectable & kTaggedPointer; | |
242 case ALLOCATION_SITE_TYPE: | 232 case ALLOCATION_SITE_TYPE: |
243 case ACCESSOR_INFO_TYPE: | 233 case ACCESSOR_INFO_TYPE: |
244 case SHARED_FUNCTION_INFO_TYPE: | 234 case SHARED_FUNCTION_INFO_TYPE: |
245 case ACCESSOR_PAIR_TYPE: | 235 case ACCESSOR_PAIR_TYPE: |
246 case FIXED_ARRAY_TYPE: | 236 case FIXED_ARRAY_TYPE: |
247 case FIXED_DOUBLE_ARRAY_TYPE: | 237 case FIXED_DOUBLE_ARRAY_TYPE: |
248 case BYTE_ARRAY_TYPE: | 238 case BYTE_ARRAY_TYPE: |
249 case BYTECODE_ARRAY_TYPE: | 239 case BYTECODE_ARRAY_TYPE: |
250 case TRANSITION_ARRAY_TYPE: | 240 case TRANSITION_ARRAY_TYPE: |
251 case FOREIGN_TYPE: | 241 case FOREIGN_TYPE: |
(...skipping 1022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1274 #undef CONSTRUCT_SIMD_TYPE | 1264 #undef CONSTRUCT_SIMD_TYPE |
1275 | 1265 |
1276 // ----------------------------------------------------------------------------- | 1266 // ----------------------------------------------------------------------------- |
1277 // Instantiations. | 1267 // Instantiations. |
1278 | 1268 |
1279 template class Type::Iterator<i::Map>; | 1269 template class Type::Iterator<i::Map>; |
1280 template class Type::Iterator<i::Object>; | 1270 template class Type::Iterator<i::Object>; |
1281 | 1271 |
1282 } // namespace internal | 1272 } // namespace internal |
1283 } // namespace v8 | 1273 } // namespace v8 |
OLD | NEW |