| Index: src/api.cc | 
| diff --git a/src/api.cc b/src/api.cc | 
| index 8218ad43c3a6c7dcfeb8b448a0d4b15aaaf0ccf1..0bdee64aafea902c9e600b494fe26e663cb58c8a 100644 | 
| --- a/src/api.cc | 
| +++ b/src/api.cc | 
| @@ -6422,12 +6422,6 @@ void HandleScopeImplementer::IterateThis(ObjectVisitor* v) { | 
| Object** start = reinterpret_cast<Object**>(&saved_contexts_.first()); | 
| v->VisitPointers(start, start + saved_contexts_.length()); | 
| } | 
| - | 
| -  for (DeferredHandles* deferred = deferred_handles_head_; | 
| -       deferred != NULL; | 
| -       deferred = deferred->next_) { | 
| -    deferred->Iterate(v); | 
| -  } | 
| } | 
|  | 
|  | 
| @@ -6448,8 +6442,8 @@ char* HandleScopeImplementer::Iterate(ObjectVisitor* v, char* storage) { | 
|  | 
|  | 
| DeferredHandles* HandleScopeImplementer::Detach(Object** prev_limit) { | 
| -  DeferredHandles* deferred = new DeferredHandles( | 
| -      deferred_handles_head_, isolate()->handle_scope_data()->next, this); | 
| +  DeferredHandles* deferred = | 
| +      new DeferredHandles(isolate()->handle_scope_data()->next, isolate()); | 
|  | 
| while (!blocks_.is_empty()) { | 
| Object** block_start = blocks_.last(); | 
| @@ -6470,41 +6464,12 @@ DeferredHandles* HandleScopeImplementer::Detach(Object** prev_limit) { | 
| ASSERT(prev_limit == NULL || !blocks_.is_empty()); | 
|  | 
| ASSERT(!blocks_.is_empty() && prev_limit != NULL); | 
| -  deferred_handles_head_ = deferred; | 
| ASSERT(last_handle_before_deferred_block_ != NULL); | 
| last_handle_before_deferred_block_ = NULL; | 
| return deferred; | 
| } | 
|  | 
|  | 
| -void HandleScopeImplementer::DestroyDeferredHandles(DeferredHandles* deferred) { | 
| -#ifdef DEBUG | 
| -  DeferredHandles* deferred_iterator = deferred; | 
| -  while (deferred_iterator->previous_ != NULL) { | 
| -    deferred_iterator = deferred_iterator->previous_; | 
| -  } | 
| -  ASSERT(deferred_handles_head_ == deferred_iterator); | 
| -#endif | 
| -  if (deferred_handles_head_ == deferred) { | 
| -    deferred_handles_head_ = deferred_handles_head_->next_; | 
| -  } | 
| -  if (deferred->next_ != NULL) { | 
| -    deferred->next_->previous_ = deferred->previous_; | 
| -  } | 
| -  if (deferred->previous_ != NULL) { | 
| -    deferred->previous_->next_ = deferred->next_; | 
| -  } | 
| -  for (int i = 0; i < deferred->blocks_.length(); i++) { | 
| -#ifdef DEBUG | 
| -    HandleScope::ZapRange(deferred->blocks_[i], | 
| -                          &deferred->blocks_[i][kHandleBlockSize]); | 
| -#endif | 
| -    if (spare_ != NULL) DeleteArray(spare_); | 
| -    spare_ = deferred->blocks_[i]; | 
| -  } | 
| -} | 
| - | 
| - | 
| void HandleScopeImplementer::BeginDeferredScope() { | 
| ASSERT(last_handle_before_deferred_block_ == NULL); | 
| last_handle_before_deferred_block_ = isolate()->handle_scope_data()->next; | 
| @@ -6512,7 +6477,7 @@ void HandleScopeImplementer::BeginDeferredScope() { | 
|  | 
|  | 
| DeferredHandles::~DeferredHandles() { | 
| -  impl_->DestroyDeferredHandles(this); | 
| +  isolate_->DestroyDeferredHandles(this); | 
| } | 
|  | 
|  | 
|  |