Perform GC on teardown of FXCG_UnitTest.

Otherwise, the heap is silently thrown away for these tests, and we
might miss issues involving tracing, etc.

-- use the actual isolate since it happens to be present.

Change-Id: I2faea565fe53f6a08934ef366501fc007a828fd8
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/73970
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/testing/fxgc_unittest.cpp b/testing/fxgc_unittest.cpp
index 0e467cf..538565e 100644
--- a/testing/fxgc_unittest.cpp
+++ b/testing/fxgc_unittest.cpp
@@ -14,12 +14,18 @@
 
 void FXGCUnitTest::SetUp() {
   FXV8UnitTest::SetUp();
-  FXGC_Initialize(V8TestEnvironment::GetInstance()->platform(), nullptr);
+  auto* env = V8TestEnvironment::GetInstance();
+  FXGC_Initialize(env->platform(), env->isolate());
   heap_ = FXGC_CreateHeap();
   ASSERT_TRUE(heap_);
 }
 
 void FXGCUnitTest::TearDown() {
+  FXGC_ForceGarbageCollection(heap_.get());
+  auto* env = V8TestEnvironment::GetInstance();
+  while (v8::platform::PumpMessageLoop(env->platform(), env->isolate()))
+    continue;
+
   heap_.reset();
   FXGC_Release();
   FXV8UnitTest::TearDown();