OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 // Review notes: | 5 // Review notes: |
6 // | 6 // |
7 // - The use of macros in these inline functions may seem superfluous | 7 // - The use of macros in these inline functions may seem superfluous |
8 // but it is absolutely needed to make sure gcc generates optimal | 8 // but it is absolutely needed to make sure gcc generates optimal |
9 // code. gcc is not happy when attempting to inline too deep. | 9 // code. gcc is not happy when attempting to inline too deep. |
10 // | 10 // |
(...skipping 2201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2212 default: | 2212 default: |
2213 if (type >= FIRST_ARRAY_ITERATOR_TYPE && | 2213 if (type >= FIRST_ARRAY_ITERATOR_TYPE && |
2214 type <= LAST_ARRAY_ITERATOR_TYPE) { | 2214 type <= LAST_ARRAY_ITERATOR_TYPE) { |
2215 return JSArrayIterator::kSize; | 2215 return JSArrayIterator::kSize; |
2216 } | 2216 } |
2217 UNREACHABLE(); | 2217 UNREACHABLE(); |
2218 return 0; | 2218 return 0; |
2219 } | 2219 } |
2220 } | 2220 } |
2221 | 2221 |
| 2222 inline bool IsSpecialReceiverInstanceType(InstanceType instance_type) { |
| 2223 return instance_type <= LAST_SPECIAL_RECEIVER_TYPE; |
| 2224 } |
2222 | 2225 |
2223 int JSObject::GetInternalFieldCount(Map* map) { | 2226 int JSObject::GetInternalFieldCount(Map* map) { |
2224 int instance_size = map->instance_size(); | 2227 int instance_size = map->instance_size(); |
2225 if (instance_size == kVariableSizeSentinel) return 0; | 2228 if (instance_size == kVariableSizeSentinel) return 0; |
2226 InstanceType instance_type = map->instance_type(); | 2229 InstanceType instance_type = map->instance_type(); |
2227 return ((instance_size - GetHeaderSize(instance_type)) >> kPointerSizeLog2) - | 2230 return ((instance_size - GetHeaderSize(instance_type)) >> kPointerSizeLog2) - |
2228 map->GetInObjectProperties(); | 2231 map->GetInObjectProperties(); |
2229 } | 2232 } |
2230 | 2233 |
2231 | 2234 |
(...skipping 2707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4939 bool Map::IsJSProxyMap() { return instance_type() == JS_PROXY_TYPE; } | 4942 bool Map::IsJSProxyMap() { return instance_type() == JS_PROXY_TYPE; } |
4940 bool Map::IsJSGlobalProxyMap() { | 4943 bool Map::IsJSGlobalProxyMap() { |
4941 return instance_type() == JS_GLOBAL_PROXY_TYPE; | 4944 return instance_type() == JS_GLOBAL_PROXY_TYPE; |
4942 } | 4945 } |
4943 bool Map::IsJSGlobalObjectMap() { | 4946 bool Map::IsJSGlobalObjectMap() { |
4944 return instance_type() == JS_GLOBAL_OBJECT_TYPE; | 4947 return instance_type() == JS_GLOBAL_OBJECT_TYPE; |
4945 } | 4948 } |
4946 bool Map::IsJSTypedArrayMap() { return instance_type() == JS_TYPED_ARRAY_TYPE; } | 4949 bool Map::IsJSTypedArrayMap() { return instance_type() == JS_TYPED_ARRAY_TYPE; } |
4947 bool Map::IsJSDataViewMap() { return instance_type() == JS_DATA_VIEW_TYPE; } | 4950 bool Map::IsJSDataViewMap() { return instance_type() == JS_DATA_VIEW_TYPE; } |
4948 | 4951 |
| 4952 bool Map::IsSpecialReceiverMap() { |
| 4953 bool result = IsSpecialReceiverInstanceType(instance_type()); |
| 4954 DCHECK_IMPLIES(!result, |
| 4955 !has_named_interceptor() && !is_access_check_needed()); |
| 4956 return result; |
| 4957 } |
4949 | 4958 |
4950 bool Map::CanOmitMapChecks() { | 4959 bool Map::CanOmitMapChecks() { |
4951 return is_stable() && FLAG_omit_map_checks_for_leaf_maps; | 4960 return is_stable() && FLAG_omit_map_checks_for_leaf_maps; |
4952 } | 4961 } |
4953 | 4962 |
4954 | 4963 |
4955 DependentCode* DependentCode::next_link() { | 4964 DependentCode* DependentCode::next_link() { |
4956 return DependentCode::cast(get(kNextLinkIndex)); | 4965 return DependentCode::cast(get(kNextLinkIndex)); |
4957 } | 4966 } |
4958 | 4967 |
(...skipping 3479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8438 #undef WRITE_INT64_FIELD | 8447 #undef WRITE_INT64_FIELD |
8439 #undef READ_BYTE_FIELD | 8448 #undef READ_BYTE_FIELD |
8440 #undef WRITE_BYTE_FIELD | 8449 #undef WRITE_BYTE_FIELD |
8441 #undef NOBARRIER_READ_BYTE_FIELD | 8450 #undef NOBARRIER_READ_BYTE_FIELD |
8442 #undef NOBARRIER_WRITE_BYTE_FIELD | 8451 #undef NOBARRIER_WRITE_BYTE_FIELD |
8443 | 8452 |
8444 } // namespace internal | 8453 } // namespace internal |
8445 } // namespace v8 | 8454 } // namespace v8 |
8446 | 8455 |
8447 #endif // V8_OBJECTS_INL_H_ | 8456 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |