diff --git a/dom.bs b/dom.bs index a3e8b3a5..0d3e4b4a 100644 --- a/dom.bs +++ b/dom.bs @@ -8625,6 +8625,10 @@ and {{Range/getBoundingClientRect()}} methods are defined in other specification to filter and traverse node trees. +Each {{NodeIterator}} and {{TreeWalker}} object has an associated active flag to avoid +recursive invocations. It is initially unset. + Each {{NodeIterator}} and {{TreeWalker}} object also has an associated root node, @@ -8635,6 +8639,7 @@ To filter node run these steps:
    +
  1. If the active flag is set, throw an {{InvalidStateError}}.
  2. Let n be node's {{Node/nodeType}} attribute value minus 1.
  3. If the nth bit (where 0 is the least @@ -8644,9 +8649,11 @@ these steps:
  4. If filter is null, return {{NodeFilter/FILTER_ACCEPT}}. +
  5. Set the active flag.
  6. Let result be the return value of call a user object's operation with filter, "acceptNode", and a list of arguments consisting of node. +
  7. Unset the active flag.
  8. Return result.
@@ -8680,7 +8687,7 @@ Each {{NodeIterator}} object has an associated node.

As mentioned earlier, {{NodeIterator}} objects have an -associated +associated active flag, root node, whatToShow bitmask, and filter callback as well.