@ 261105.16
current
#include "cppgc_helpers.h"  // NOLINT(build/include_inline)
#include "cppgc_helpers-inl.h"

namespace node {

void CppgcWrapperList::Cleanup() {
  while (!IsEmpty()) {
    CppgcWrapperListNode* node = PopFront();
    CppgcMixin* wrapper = node->persistent.Get();
    if (wrapper != nullptr) wrapper->Finalize();
    node->realm = nullptr;
  }
}

void CppgcWrapperList::MemoryInfo(MemoryTracker* tracker) const {
  for (auto node : *this) {
    CppgcMixin* ptr = node->persistent.Get();
    if (ptr != nullptr) {
      // TODO(addaleax): Add weak edges instead of no edges once
      // https://github.com/v8/v8/commit/e37cadf1143a8c5bbe44c0408186b5a26cc23863
      // is available for us
      tracker->Track(ptr, MemoryTracker::kWeakEdge);
    }
  }
}
}  // namespace node