Index: src/heap/objects-visiting.cc |
diff --git a/src/heap/objects-visiting.cc b/src/heap/objects-visiting.cc |
index cf9fb5ed26210cee5972269ca33ec04195291dd8..a0df1f50c03800af72fbc0088accd4f3af3e6e4f 100644 |
--- a/src/heap/objects-visiting.cc |
+++ b/src/heap/objects-visiting.cc |
@@ -40,7 +40,8 @@ |
return kVisitSlicedString; |
case kExternalStringTag: |
- return kVisitDataObject; |
+ return GetVisitorIdForSize(kVisitDataObject, kVisitDataObjectGeneric, |
+ instance_size, has_unboxed_fields); |
case kThinStringTag: |
return kVisitThinString; |
@@ -96,7 +97,8 @@ |
return kVisitSharedFunctionInfo; |
case JS_PROXY_TYPE: |
- return kVisitStruct; |
+ return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric, |
+ instance_size, has_unboxed_fields); |
case SYMBOL_TYPE: |
return kVisitSymbol; |
@@ -164,19 +166,24 @@ |
case JS_PROMISE_CAPABILITY_TYPE: |
case JS_PROMISE_TYPE: |
case JS_BOUND_FUNCTION_TYPE: |
- return has_unboxed_fields ? kVisitJSObject : kVisitJSObjectFast; |
+ return GetVisitorIdForSize(kVisitJSObject, kVisitJSObjectGeneric, |
+ instance_size, has_unboxed_fields); |
case JS_API_OBJECT_TYPE: |
case JS_SPECIAL_API_OBJECT_TYPE: |
- return kVisitJSApiObject; |
+ return GetVisitorIdForSize(kVisitJSApiObject, kVisitJSApiObjectGeneric, |
+ instance_size, has_unboxed_fields); |
case JS_FUNCTION_TYPE: |
return kVisitJSFunction; |
case FILLER_TYPE: |
+ if (instance_size == kPointerSize) return kVisitDataObjectGeneric; |
+ // Fall through. |
case FOREIGN_TYPE: |
case HEAP_NUMBER_TYPE: |
case MUTABLE_HEAP_NUMBER_TYPE: |
- return kVisitDataObject; |
+ return GetVisitorIdForSize(kVisitDataObject, kVisitDataObjectGeneric, |
+ instance_size, has_unboxed_fields); |
case FIXED_UINT8_ARRAY_TYPE: |
case FIXED_INT8_ARRAY_TYPE: |
@@ -198,7 +205,8 @@ |
return kVisitAllocationSite; |
} |
- return kVisitStruct; |
+ return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric, |
+ instance_size, has_unboxed_fields); |
default: |
UNREACHABLE(); |