Source/core/dom/shadow/ComposedTreeWalker.cpp
// FIXME: Use an iterative algorithm so that it can be inlined.
// https://bugs.webkit.org/show_bug.cgi?id=90415
Use an iterative algorithm so that it can be inlined.
Use an iterative algorithm so that it can be inlined .
Node* ComposedTreeWalker::traverseParent(const Node* node, ParentTraversalDetails* details) const
{
    if (node->isPseudoElement())
        return node->parentOrShadowHostNode();
    if (shadowWhereNodeCanBeDistributed(*node)) {
        if (const InsertionPoint* insertionPoint = resolveReprojection(node)) {
            if (details)
                details->didTraverseInsertionPoint(insertionPoint);
            if (shadowWhereNodeCanBeDistributed(*insertionPoint))
                return 0;
            return traverseParentOrHost(insertionPoint);
        }
        return 0;
    }
    return traverseParentOrHost(node);
}
Node * ComposedTreeWalker :: traverseParent ( const Node * node , ParentTraversalDetails * details ) const { if ( node -> isPseudoElement ( ) ) return node -> parentOrShadowHostNode ( ) ; if ( shadowWhereNodeCanBeDistributed ( * node ) ) { if ( const InsertionPoint * insertionPoint = resolveReprojection ( node ) ) { if ( details ) details -> didTraverseInsertionPoint ( insertionPoint ) ; if ( shadowWhereNodeCanBeDistributed ( * insertionPoint ) ) return 0 ; return traverseParentOrHost ( insertionPoint ) ; } return 0 ; } return traverseParentOrHost ( node ) ; }
FIXME: Use an iterative algorithm so that it can be inlined.
FIXME : Use an iterative algorithm so that it can be inlined .
// The node is distributed. But the distribution was stopped at this insertion point.