RawPtr<Element> InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock(const HeapVector<Member<Element>>& ancestors, RawPtr<Element> blockToInsert, EditingState* editingState) { // Make clones of ancestors in between the start node and the start block. RawPtr<Element> parent = blockToInsert; for (size_t i = ancestors.size(); i != 0; --i) { RawPtr<Element> child = ancestors[i - 1]->cloneElementWithoutChildren(); // It should always be okay to remove id from the cloned elements, since the originals are not deleted. child->removeAttribute(idAttr); appendNode(child, parent, editingState); if (editingState->isAborted()) return nullptr; parent = child.release(); } return parent.release(); }