diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index 673c387..13abb3a 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -10,6 +10,7 @@
 #include <utility>
 
 #include "core/fxcrt/fx_extension.h"
+#include "fxjs/gc/container_trace.h"
 #include "fxjs/xfa/cfxjse_engine.h"
 #include "fxjs/xfa/cjx_object.h"
 #include "third_party/base/stl_util.h"
@@ -66,21 +67,11 @@
   visitor->Trace(m_pDoc);
   visitor->Trace(m_pWidgetHandler);
   visitor->Trace(m_pFocusNode);
-
-  for (const auto& node : m_ValidateNodes)
-    visitor->Trace(node);
-
-  for (const auto& node : m_CalculateNodes)
-    visitor->Trace(node);
-
-  for (const auto& node : m_NewAddedNodes)
-    visitor->Trace(node);
-
-  for (const auto& node : m_BindItems)
-    visitor->Trace(node);
-
-  for (const auto& node : m_IndexChangedSubforms)
-    visitor->Trace(node);
+  ContainerTrace(visitor, m_ValidateNodes);
+  ContainerTrace(visitor, m_CalculateNodes);
+  ContainerTrace(visitor, m_NewAddedNodes);
+  ContainerTrace(visitor, m_BindItems);
+  ContainerTrace(visitor, m_IndexChangedSubforms);
 }
 
 void CXFA_FFDocView::InitLayout(CXFA_Node* pNode) {
diff --git a/xfa/fxfa/cxfa_ffdocview.h b/xfa/fxfa/cxfa_ffdocview.h
index fb39592..74bd34c 100644
--- a/xfa/fxfa/cxfa_ffdocview.h
+++ b/xfa/fxfa/cxfa_ffdocview.h
@@ -7,7 +7,7 @@
 #ifndef XFA_FXFA_CXFA_FFDOCVIEW_H_
 #define XFA_FXFA_CXFA_FFDOCVIEW_H_
 
-#include <deque>
+#include <list>
 #include <memory>
 #include <vector>
 
@@ -126,11 +126,11 @@
   cppgc::Member<CXFA_FFWidgetHandler> m_pWidgetHandler;
   cppgc::Member<CXFA_Node> m_pFocusNode;
   ObservedPtr<CXFA_FFWidget> m_pFocusWidget;
-  std::deque<cppgc::Member<CXFA_Node>> m_ValidateNodes;
+  std::list<cppgc::Member<CXFA_Node>> m_ValidateNodes;
   std::vector<cppgc::Member<CXFA_Node>> m_CalculateNodes;
-  std::deque<cppgc::Member<CXFA_BindItems>> m_BindItems;
-  std::deque<cppgc::Member<CXFA_Node>> m_NewAddedNodes;
-  std::deque<cppgc::Member<CXFA_Node>> m_IndexChangedSubforms;
+  std::list<cppgc::Member<CXFA_BindItems>> m_BindItems;
+  std::list<cppgc::Member<CXFA_Node>> m_NewAddedNodes;
+  std::list<cppgc::Member<CXFA_Node>> m_IndexChangedSubforms;
   XFA_DOCVIEW_LAYOUTSTATUS m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_None;
   int32_t m_iLock = 0;
 };
diff --git a/xfa/fxfa/cxfa_ffpageview.cpp b/xfa/fxfa/cxfa_ffpageview.cpp
index 5db297a..367e5ec 100644
--- a/xfa/fxfa/cxfa_ffpageview.cpp
+++ b/xfa/fxfa/cxfa_ffpageview.cpp
@@ -10,6 +10,7 @@
 #include <memory>
 #include <vector>
 
+#include "fxjs/gc/container_trace.h"
 #include "fxjs/xfa/cjx_object.h"
 #include "third_party/base/stl_util.h"
 #include "xfa/fxfa/cxfa_ffcheckbutton.h"
@@ -273,8 +274,7 @@
 
 void CXFA_FFTabOrderPageWidgetIterator::Trace(cppgc::Visitor* visitor) const {
   visitor->Trace(m_pPageViewLayout);
-  for (const auto& item : m_TabOrderWidgetArray)
-    visitor->Trace(item);
+  ContainerTrace(visitor, m_TabOrderWidgetArray);
 }
 
 void CXFA_FFTabOrderPageWidgetIterator::Reset() {
diff --git a/xfa/fxfa/layout/cxfa_layoutprocessor.cpp b/xfa/fxfa/layout/cxfa_layoutprocessor.cpp
index cb4f7c4..f299f2f 100644
--- a/xfa/fxfa/layout/cxfa_layoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_layoutprocessor.cpp
@@ -6,6 +6,7 @@
 
 #include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 
+#include "fxjs/gc/container_trace.h"
 #include "fxjs/xfa/cjx_object.h"
 #include "third_party/base/stl_util.h"
 #include "v8/include/cppgc/heap.h"
@@ -35,8 +36,7 @@
   CXFA_Document::LayoutProcessorIface::Trace(visitor);
   visitor->Trace(m_pViewLayoutProcessor);
   visitor->Trace(m_pContentLayoutProcessor);
-  for (const auto& container : m_rgChangedContainers)
-    visitor->Trace(container);
+  ContainerTrace(visitor, m_rgChangedContainers);
 }
 
 void CXFA_LayoutProcessor::SetForceRelayout(bool bForceRestart) {
diff --git a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
index 349d486..c165ad9 100644
--- a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
@@ -8,6 +8,7 @@
 
 #include <utility>
 
+#include "fxjs/gc/container_trace.h"
 #include "fxjs/xfa/cfxjse_engine.h"
 #include "fxjs/xfa/cjx_object.h"
 #include "third_party/base/stl_util.h"
@@ -369,8 +370,7 @@
   if (m_CurrentViewRecordIter != m_ProposedViewRecords.end())
     visitor->Trace(*m_CurrentViewRecordIter);
 
-  for (const auto& page : m_PageArray)
-    visitor->Trace(page);
+  ContainerTrace(visitor, m_PageArray);
 }
 
 bool CXFA_ViewLayoutProcessor::InitLayoutPage(CXFA_Node* pFormNode) {
diff --git a/xfa/fxfa/parser/cxfa_arraynodelist.cpp b/xfa/fxfa/parser/cxfa_arraynodelist.cpp
index 55c4123..1693732 100644
--- a/xfa/fxfa/parser/cxfa_arraynodelist.cpp
+++ b/xfa/fxfa/parser/cxfa_arraynodelist.cpp
@@ -9,6 +9,7 @@
 #include <utility>
 #include <vector>
 
+#include "fxjs/gc/container_trace.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 
 CXFA_ArrayNodeList::CXFA_ArrayNodeList(CXFA_Document* pDocument)
@@ -18,8 +19,7 @@
 
 void CXFA_ArrayNodeList::Trace(cppgc::Visitor* visitor) const {
   CXFA_TreeList::Trace(visitor);
-  for (const auto& node : m_array)
-    visitor->Trace(node);
+  ContainerTrace(visitor, m_array);
 }
 
 void CXFA_ArrayNodeList::SetArrayNodeList(
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp
index 701a44d..bbdfb43 100644
--- a/xfa/fxfa/parser/cxfa_document.cpp
+++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -12,6 +12,7 @@
 #include "core/fxcrt/fx_extension.h"
 #include "core/fxcrt/xml/cfx_xmldocument.h"
 #include "core/fxcrt/xml/cfx_xmlelement.h"
+#include "fxjs/gc/container_trace.h"
 #include "fxjs/xfa/cfxjse_engine.h"
 #include "fxjs/xfa/cjx_object.h"
 #include "third_party/base/compiler_specific.h"
@@ -1298,10 +1299,8 @@
   visitor->Trace(m_pScriptLog);
   visitor->Trace(m_pScriptLayout);
   visitor->Trace(m_pScriptSignature);
-  for (const auto& binding : m_rgGlobalBinding)
-    visitor->Trace(binding.second);
-  for (const auto& pending : m_pPendingPageSet)
-    visitor->Trace(pending);
+  ContainerTrace(visitor, m_rgGlobalBinding);
+  ContainerTrace(visitor, m_pPendingPageSet);
 }
 
 void CXFA_Document::ClearLayoutData() {
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 6ea77d7..22fbc96 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -23,6 +23,7 @@
 #include "core/fxcrt/xml/cfx_xmltext.h"
 #include "core/fxge/dib/cfx_dibitmap.h"
 #include "core/fxge/fx_font.h"
+#include "fxjs/gc/container_trace.h"
 #include "fxjs/xfa/cfxjse_engine.h"
 #include "fxjs/xfa/cfxjse_value.h"
 #include "fxjs/xfa/cjx_node.h"
@@ -1003,8 +1004,7 @@
   CXFA_Object::Trace(visitor);
   GCedTreeNodeMixin<CXFA_Node>::Trace(visitor);
   visitor->Trace(m_pAuxNode);
-  for (const auto& node : binding_nodes_)
-    visitor->Trace(node);
+  ContainerTrace(visitor, binding_nodes_);
   visitor->Trace(m_pLayoutData);
   visitor->Trace(ui_);
 }
diff --git a/xfa/fxfa/parser/cxfa_nodeowner.cpp b/xfa/fxfa/parser/cxfa_nodeowner.cpp
index 1126db4..390bb65 100644
--- a/xfa/fxfa/parser/cxfa_nodeowner.cpp
+++ b/xfa/fxfa/parser/cxfa_nodeowner.cpp
@@ -8,6 +8,7 @@
 
 #include <utility>
 
+#include "fxjs/gc/container_trace.h"
 #include "xfa/fxfa/parser/cxfa_list.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 
@@ -16,8 +17,7 @@
 CXFA_NodeOwner::~CXFA_NodeOwner() = default;
 
 void CXFA_NodeOwner::Trace(cppgc::Visitor* visitor) const {
-  for (const auto& list : lists_)
-    visitor->Trace(list);
+  ContainerTrace(visitor, lists_);
 }
 
 void CXFA_NodeOwner::PersistList(CXFA_List* list) {
