| Index: src/incremental-marking.cc
|
| ===================================================================
|
| --- src/incremental-marking.cc (revision 11348)
|
| +++ src/incremental-marking.cc (working copy)
|
| @@ -830,6 +830,19 @@
|
| MarkObjectGreyDoNotEnqueue(ctx->normalized_map_cache());
|
|
|
| VisitGlobalContext(ctx, &marking_visitor);
|
| + } else if (map->instance_type() == JS_FUNCTION_TYPE) {
|
| + marking_visitor.VisitPointers(
|
| + HeapObject::RawField(obj, JSFunction::kPropertiesOffset),
|
| + HeapObject::RawField(obj, JSFunction::kCodeEntryOffset));
|
| +
|
| + marking_visitor.VisitCodeEntry(
|
| + obj->address() + JSFunction::kCodeEntryOffset);
|
| +
|
| + marking_visitor.VisitPointers(
|
| + HeapObject::RawField(obj,
|
| + JSFunction::kCodeEntryOffset + kPointerSize),
|
| + HeapObject::RawField(obj,
|
| + JSFunction::kNonWeakFieldsEndOffset));
|
| } else {
|
| obj->IterateBody(map->instance_type(), size, &marking_visitor);
|
| }
|
|
|