| Index: src/objects-visiting-inl.h
|
| diff --git a/src/objects-visiting-inl.h b/src/objects-visiting-inl.h
|
| index 6c3c9d44fe318d77c141a68dc6d562d86563aceb..a4df66c5783d1c75732f6057022ee90f4156ea79 100644
|
| --- a/src/objects-visiting-inl.h
|
| +++ b/src/objects-visiting-inl.h
|
| @@ -83,6 +83,8 @@ void StaticNewSpaceVisitor<StaticVisitor>::Initialize() {
|
|
|
| table_.Register(kVisitJSTypedArray, &VisitJSTypedArray);
|
|
|
| + table_.Register(kVisitJSDataView, &VisitJSDataView);
|
| +
|
| table_.Register(kVisitFreeSpace, &VisitFreeSpace);
|
|
|
| table_.Register(kVisitJSWeakMap, &JSObjectVisitor::Visit);
|
| @@ -140,6 +142,22 @@ int StaticNewSpaceVisitor<StaticVisitor>::VisitJSTypedArray(
|
|
|
|
|
| template<typename StaticVisitor>
|
| +int StaticNewSpaceVisitor<StaticVisitor>::VisitJSDataView(
|
| + Map* map, HeapObject* object) {
|
| + VisitPointers(
|
| + map->GetHeap(),
|
| + HeapObject::RawField(object, JSDataView::BodyDescriptor::kStartOffset),
|
| + HeapObject::RawField(object, JSDataView::kWeakNextOffset));
|
| + VisitPointers(
|
| + map->GetHeap(),
|
| + HeapObject::RawField(object,
|
| + JSDataView::kWeakNextOffset + kPointerSize),
|
| + HeapObject::RawField(object, JSDataView::kSize));
|
| + return JSDataView::kSize;
|
| +}
|
| +
|
| +
|
| +template<typename StaticVisitor>
|
| void StaticMarkingVisitor<StaticVisitor>::Initialize() {
|
| table_.Register(kVisitShortcutCandidate,
|
| &FixedBodyVisitor<StaticVisitor,
|
| @@ -194,6 +212,8 @@ void StaticMarkingVisitor<StaticVisitor>::Initialize() {
|
|
|
| table_.Register(kVisitJSTypedArray, &VisitJSTypedArray);
|
|
|
| + table_.Register(kVisitJSDataView, &VisitJSDataView);
|
| +
|
| // Registration for kVisitJSRegExp is done by StaticVisitor.
|
|
|
| table_.Register(kVisitCell,
|
| @@ -486,6 +506,21 @@ void StaticMarkingVisitor<StaticVisitor>::VisitJSTypedArray(
|
|
|
|
|
| template<typename StaticVisitor>
|
| +void StaticMarkingVisitor<StaticVisitor>::VisitJSDataView(
|
| + Map* map, HeapObject* object) {
|
| + StaticVisitor::VisitPointers(
|
| + map->GetHeap(),
|
| + HeapObject::RawField(object, JSDataView::BodyDescriptor::kStartOffset),
|
| + HeapObject::RawField(object, JSDataView::kWeakNextOffset));
|
| + StaticVisitor::VisitPointers(
|
| + map->GetHeap(),
|
| + HeapObject::RawField(object,
|
| + JSDataView::kWeakNextOffset + kPointerSize),
|
| + HeapObject::RawField(object, JSDataView::kSize));
|
| +}
|
| +
|
| +
|
| +template<typename StaticVisitor>
|
| void StaticMarkingVisitor<StaticVisitor>::MarkMapContents(
|
| Heap* heap, Map* map) {
|
| // Make sure that the back pointer stored either in the map itself or
|
|
|