diff --git a/DEPS b/DEPS
index 935a379..25d40f0 100644
--- a/DEPS
+++ b/DEPS
@@ -95,7 +95,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling v8
   # and whatever else without interference from each other.
-  'v8_revision': 'bfc0d2f43a4fa0634b7aaa5d94fb141a64e55978',
+  'v8_revision': '41918cc2bdca6010bd55a7893b3ef5506433158c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling zlib
   # and whatever else without interference from each other.
diff --git a/fxjs/gc/gced_tree_node_embeddertest.cpp b/fxjs/gc/gced_tree_node_embeddertest.cpp
index 9dd218b..25a25b3 100644
--- a/fxjs/gc/gced_tree_node_embeddertest.cpp
+++ b/fxjs/gc/gced_tree_node_embeddertest.cpp
@@ -44,7 +44,7 @@
   cppgc::Heap* heap() const { return heap_.get(); }
   ObservableGCedTreeNodeForTest* CreateNode() {
     return cppgc::MakeGarbageCollected<ObservableGCedTreeNodeForTest>(
-        heap_.get());
+        heap_->GetAllocationHandle());
   }
 
   void ForceGCAndPump() {
@@ -58,7 +58,7 @@
     for (int i = 0; i < 4; ++i) {
       parent->AppendFirstChild(
           cppgc::MakeGarbageCollected<ObservableGCedTreeNodeForTest>(
-              heap_.get()));
+              heap_->GetAllocationHandle()));
     }
   }
 
@@ -66,7 +66,7 @@
     for (int i = 0; i < 4; ++i) {
       parent->AppendLastChild(
           cppgc::MakeGarbageCollected<ObservableGCedTreeNodeForTest>(
-              heap_.get()));
+              heap_->GetAllocationHandle()));
     }
   }
 
diff --git a/fxjs/gc/heap_embeddertest.cpp b/fxjs/gc/heap_embeddertest.cpp
index 4930d44..b17a4ae 100644
--- a/fxjs/gc/heap_embeddertest.cpp
+++ b/fxjs/gc/heap_embeddertest.cpp
@@ -72,7 +72,8 @@
   ASSERT_TRUE(heap1);
 
   PseudoCollectible::s_persistent_ =
-      cppgc::MakeGarbageCollected<PseudoCollectible>(heap1.get());
+      cppgc::MakeGarbageCollected<PseudoCollectible>(
+          heap1->GetAllocationHandle());
   EXPECT_TRUE(PseudoCollectible::s_persistent_->IsLive());
   EXPECT_EQ(1u, PseudoCollectible::LiveCount());
   EXPECT_EQ(0u, PseudoCollectible::DeadCount());
@@ -91,7 +92,8 @@
   ASSERT_TRUE(heap1);
 
   PseudoCollectible::s_persistent_ =
-      cppgc::MakeGarbageCollected<PseudoCollectible>(heap1.get());
+      cppgc::MakeGarbageCollected<PseudoCollectible>(
+          heap1->GetAllocationHandle());
   EXPECT_TRUE(PseudoCollectible::s_persistent_->IsLive());
   EXPECT_EQ(1u, PseudoCollectible::LiveCount());
   EXPECT_EQ(0u, PseudoCollectible::DeadCount());
