| Index: src/api.cc
 | 
| diff --git a/src/api.cc b/src/api.cc
 | 
| index f4a78256ac41417dbe0fa2635bd1dd351b1f610f..9cdb301e5de5d9b05c79fb0de9dc20ab276ceec3 100644
 | 
| --- a/src/api.cc
 | 
| +++ b/src/api.cc
 | 
| @@ -4497,30 +4497,46 @@ void v8::V8::VisitExternalResources(ExternalResourceVisitor* visitor) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| +class VisitorAdapter : public i::ObjectVisitor {
 | 
| + public:
 | 
| +  explicit VisitorAdapter(PersistentHandleVisitor* visitor)
 | 
| +    : visitor_(visitor) {}
 | 
| +  virtual void VisitPointers(i::Object** start, i::Object** end) {
 | 
| +    UNREACHABLE();
 | 
| +  }
 | 
| +  virtual void VisitEmbedderReference(i::Object** p, uint16_t class_id) {
 | 
| +    visitor_->VisitPersistentHandle(ToApi<Value>(i::Handle<i::Object>(p)),
 | 
| +                                    class_id);
 | 
| +  }
 | 
| + private:
 | 
| +  PersistentHandleVisitor* visitor_;
 | 
| +};
 | 
| +
 | 
| +
 | 
|  void v8::V8::VisitHandlesWithClassIds(PersistentHandleVisitor* visitor) {
 | 
|    i::Isolate* isolate = i::Isolate::Current();
 | 
|    IsDeadCheck(isolate, "v8::V8::VisitHandlesWithClassId");
 | 
|  
 | 
|    i::AssertNoAllocation no_allocation;
 | 
|  
 | 
| -  class VisitorAdapter : public i::ObjectVisitor {
 | 
| -   public:
 | 
| -    explicit VisitorAdapter(PersistentHandleVisitor* visitor)
 | 
| -        : visitor_(visitor) {}
 | 
| -    virtual void VisitPointers(i::Object** start, i::Object** end) {
 | 
| -      UNREACHABLE();
 | 
| -    }
 | 
| -    virtual void VisitEmbedderReference(i::Object** p, uint16_t class_id) {
 | 
| -      visitor_->VisitPersistentHandle(ToApi<Value>(i::Handle<i::Object>(p)),
 | 
| -                                      class_id);
 | 
| -    }
 | 
| -   private:
 | 
| -    PersistentHandleVisitor* visitor_;
 | 
| -  } visitor_adapter(visitor);
 | 
| +  VisitorAdapter visitor_adapter(visitor);
 | 
|    isolate->global_handles()->IterateAllRootsWithClassIds(&visitor_adapter);
 | 
|  }
 | 
|  
 | 
|  
 | 
| +void v8::V8::VisitHandlesForPartialDependence(
 | 
| +    PersistentHandleVisitor* visitor) {
 | 
| +  i::Isolate* isolate = i::Isolate::Current();
 | 
| +  IsDeadCheck(isolate, "v8::V8::VisitHandlesForPartialDependence");
 | 
| +
 | 
| +  i::AssertNoAllocation no_allocation;
 | 
| +
 | 
| +  VisitorAdapter visitor_adapter(visitor);
 | 
| +  isolate->global_handles()->IterateAllRootsInNewSpaceWithClassIds(
 | 
| +      &visitor_adapter);
 | 
| +}
 | 
| +
 | 
| +
 | 
|  bool v8::V8::IdleNotification(int hint) {
 | 
|    // Returning true tells the caller that it need not
 | 
|    // continue to call IdleNotification.
 | 
| 
 |