Chromium Code Reviews| Index: src/objects-visiting.cc |
| diff --git a/src/objects-visiting.cc b/src/objects-visiting.cc |
| index 7d10fbd2791c0219cb6eb1e2a6a009ab0d504cd6..ad5516e57b1e2a61c145f59feb5c2143fb635bc4 100644 |
| --- a/src/objects-visiting.cc |
| +++ b/src/objects-visiting.cc |
| @@ -17,8 +17,7 @@ static inline bool IsShortcutCandidate(int type) { |
| StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId( |
| - int instance_type, |
| - int instance_size) { |
| + int instance_type, int instance_size, bool has_non_tagged_fields) { |
|
Toon Verwaest
2014/07/29 15:02:09
has_unboxed_fields?
Igor Sheludko
2014/10/30 14:23:44
Done.
|
| if (instance_type < FIRST_NONSTRING_TYPE) { |
| switch (instance_type & kStringRepresentationMask) { |
| case kSeqStringTag: |
| @@ -39,9 +38,8 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId( |
| return kVisitSlicedString; |
| case kExternalStringTag: |
| - return GetVisitorIdForSize(kVisitDataObject, |
| - kVisitDataObjectGeneric, |
| - instance_size); |
| + return GetVisitorIdForSize(kVisitDataObject, kVisitDataObjectGeneric, |
| + instance_size, has_non_tagged_fields); |
| } |
| UNREACHABLE(); |
| } |
| @@ -78,14 +76,12 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId( |
| return kVisitPropertyCell; |
| case JS_SET_TYPE: |
| - return GetVisitorIdForSize(kVisitStruct, |
| - kVisitStructGeneric, |
| - JSSet::kSize); |
| + return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric, |
| + JSSet::kSize, has_non_tagged_fields); |
| case JS_MAP_TYPE: |
| - return GetVisitorIdForSize(kVisitStruct, |
| - kVisitStructGeneric, |
| - JSMap::kSize); |
| + return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric, |
| + JSMap::kSize, has_non_tagged_fields); |
| case JS_WEAK_MAP_TYPE: |
| case JS_WEAK_SET_TYPE: |
| @@ -98,19 +94,16 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId( |
| return kVisitSharedFunctionInfo; |
| case JS_PROXY_TYPE: |
| - return GetVisitorIdForSize(kVisitStruct, |
| - kVisitStructGeneric, |
| - JSProxy::kSize); |
| + return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric, |
| + JSProxy::kSize, has_non_tagged_fields); |
| case JS_FUNCTION_PROXY_TYPE: |
| - return GetVisitorIdForSize(kVisitStruct, |
| - kVisitStructGeneric, |
| - JSFunctionProxy::kSize); |
| + return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric, |
| + JSFunctionProxy::kSize, has_non_tagged_fields); |
| case FOREIGN_TYPE: |
| - return GetVisitorIdForSize(kVisitDataObject, |
| - kVisitDataObjectGeneric, |
| - Foreign::kSize); |
| + return GetVisitorIdForSize(kVisitDataObject, kVisitDataObjectGeneric, |
| + Foreign::kSize, has_non_tagged_fields); |
| case SYMBOL_TYPE: |
| return kVisitSymbol; |
| @@ -140,9 +133,8 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId( |
| case JS_MESSAGE_OBJECT_TYPE: |
| case JS_SET_ITERATOR_TYPE: |
| case JS_MAP_ITERATOR_TYPE: |
| - return GetVisitorIdForSize(kVisitJSObject, |
| - kVisitJSObjectGeneric, |
| - instance_size); |
| + return GetVisitorIdForSize(kVisitJSObject, kVisitJSObjectGeneric, |
| + instance_size, has_non_tagged_fields); |
| case JS_FUNCTION_TYPE: |
| return kVisitJSFunction; |
| @@ -153,9 +145,8 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId( |
| case EXTERNAL_##TYPE##_ARRAY_TYPE: |
| TYPED_ARRAYS(EXTERNAL_ARRAY_CASE) |
| - return GetVisitorIdForSize(kVisitDataObject, |
| - kVisitDataObjectGeneric, |
| - instance_size); |
| + return GetVisitorIdForSize(kVisitDataObject, kVisitDataObjectGeneric, |
| + instance_size, has_non_tagged_fields); |
| #undef EXTERNAL_ARRAY_CASE |
| case FIXED_UINT8_ARRAY_TYPE: |
| @@ -179,9 +170,8 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId( |
| return kVisitAllocationSite; |
| } |
| - return GetVisitorIdForSize(kVisitStruct, |
| - kVisitStructGeneric, |
| - instance_size); |
| + return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric, |
| + instance_size, has_non_tagged_fields); |
| default: |
| UNREACHABLE(); |