diff --git a/js/src/gc/Marking.cpp b/js/src/gc/Marking.cpp index 7f75423599f8..1998b2a397c4 100644 --- a/js/src/gc/Marking.cpp +++ b/js/src/gc/Marking.cpp @@ -1774,7 +1774,9 @@ GCMarker::processMarkStackTop(SliceBudget& budget) } else if (v.isSymbol()) { traverseEdge(obj, v.toSymbol()); } else if (v.isPrivateGCThing()) { - traverseEdge(obj, v.toGCCellPtr()); + // v.toGCCellPtr cannot be inlined, so construct one manually. + Cell* cell = v.toGCThing(); + traverseEdge(obj, JS::GCCellPtr(cell, cell->getTraceKind())); } } return;