hasFutureElement method
Returns true if this node contains any Future element.
If recursive is false, only direct children are checked.
If recursive is true, the entire subtree is traversed
using an explicit stack (no recursion), preserving
left-to-right DFS order.
See ExternalElementNode.
Implementation
bool hasFutureElement({bool recursive = false}) {
final content = _content;
if (content == null || content.isEmpty) return false;
if (!recursive) {
// [ExternalElementNode] overwrites `hasFutureElement`.
return false;
}
final stack = <DOMNode>[...content];
while (stack.isNotEmpty) {
final node = stack.removeLast();
if (node.hasFutureElement()) {
return true;
}
final children = node._content;
if (children != null && children.isNotEmpty) {
for (var i = children.length - 1; i >= 0; i--) {
stack.add(children[i]);
}
}
}
return false;
}