70 if (local_heap_->is_main_thread()) {
71#ifdef V8_ENABLE_CHECKS
72 VerifyMainThreadScope();
74 current = local_heap_->heap()->isolate()->handle_scope_data();
75 CloseMainThreadScope(local_heap_, prev_next_, prev_limit_);
77 current = &local_heap_->handles()->scope_;
78 CloseScope(local_heap_, prev_next_, prev_limit_);
81 DCHECK(current->level > current->sealed_level);
82 HandleType<T>
result(value, local_heap_);
85 prev_next_ = current->next;
86 prev_limit_ = current->limit;
96 handles->scope_.next = prev_next;
97 handles->scope_.limit = prev_limit;
98 handles->scope_.level--;
100 if (old_limit != handles->scope_.limit) {
101 handles->RemoveUnusedBlocks();
102 old_limit = handles->scope_.limit;
105#ifdef ENABLE_LOCAL_HANDLE_ZAPPING
106 LocalHandles::ZapRange(handles->scope_.next, old_limit);
110 handles->scope_.next,
111 static_cast<size_t>(
reinterpret_cast<Address>(old_limit) -
112 reinterpret_cast<Address>(handles->scope_.next)));