| // Copyright 2020 The PDFium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "testing/fuzzers/xfa_process_state.h" | 
 |  | 
 | #include "fxjs/gc/heap.h" | 
 | #include "v8/include/libplatform/libplatform.h" | 
 |  | 
 | XFAProcessState::XFAProcessState(v8::Platform* platform, v8::Isolate* isolate) | 
 |     : platform_(platform), isolate_(isolate), heap_(FXGC_CreateHeap()) {} | 
 |  | 
 | XFAProcessState::~XFAProcessState() { | 
 |   FXGC_ForceGarbageCollection(heap_.get()); | 
 | } | 
 |  | 
 | cppgc::Heap* XFAProcessState::GetHeap() const { | 
 |   return heap_.get(); | 
 | } | 
 |  | 
 | void XFAProcessState::ForceGCAndPump() { | 
 |   FXGC_ForceGarbageCollection(heap_.get()); | 
 |   while (v8::platform::PumpMessageLoop(platform_, isolate_)) | 
 |     continue; | 
 | } |