AddEdge(node, referent, edgeName); AddEdge(node, referent, emptyStr); AddEdge(node, referent, nullptr); ::testing::NiceMock<MockWriter> writer; // Should get the node with edges once. EXPECT_CALL( writer, writeNode(AllOf(EdgesLength(rt, 3), Edge(rt, 0, Field(&JS::ubi::Edge::name, UTF16StrEq(edgeName))), Edge(rt, 1, Field(&JS::ubi::Edge::name, UTF16StrEq(emptyStr))), Edge(rt, 2, Field(&JS::ubi::Edge::name, IsNull()))), _) ) .Times(1) .WillOnce(Return(true)); // Should get the referent node that doesn't have any edges once. ExpectWriteNode(writer, referent); JS::AutoCheckCannotGC noGC(rt); ASSERT_TRUE(WriteHeapGraph(cx, JS::ubi::Node(&node), writer, /* wantNames = */ true, /* zones = */ nullptr, noGC));