LibWeb: Return actual callback object from TreeWalker::filter
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run

This commit is contained in:
Luke Wilde 2025-02-24 16:35:14 +00:00 committed by Jelle Raaijmakers
parent 95949ba8f2
commit 2797f9f73e
Notes: github-actions[bot] 2025-02-24 17:30:10 +00:00
5 changed files with 1104 additions and 2 deletions

View file

@ -241,6 +241,15 @@ JS::ThrowCompletionOr<GC::Ptr<Node>> TreeWalker::next_node()
}
}
// https://dom.spec.whatwg.org/#concept-traversal-filter
JS::Object* TreeWalker::filter() const
{
if (!m_filter)
return nullptr;
return m_filter->callback().callback;
}
// https://dom.spec.whatwg.org/#concept-node-filter
JS::ThrowCompletionOr<NodeFilter::Result> TreeWalker::filter(Node& node)
{

View file

@ -33,7 +33,7 @@ public:
GC::Ref<Node> root() { return m_root; }
NodeFilter* filter() { return m_filter.ptr(); }
JS::Object* filter() const;
unsigned what_to_show() const { return m_what_to_show; }

View file

@ -6,7 +6,10 @@
interface TreeWalker {
[SameObject] readonly attribute Node root;
readonly attribute unsigned long whatToShow;
readonly attribute NodeFilter? filter;
// FIXME: `object?` should be `NodeFilter?`, but we don't yet properly support callback interfaces.
readonly attribute object? filter;
attribute Node currentNode;
Node? parentNode();

View file

@ -0,0 +1,766 @@
Harness status: OK
Found 761 tests
761 Pass
Pass Recursive filters need to throw
Pass document.createTreeWalker(paras[0], 0, null)
Pass document.createTreeWalker(paras[0], 0, (function(node) { return true }))
Pass document.createTreeWalker(paras[0], 0, (function(node) { return false }))
Pass document.createTreeWalker(paras[0], 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[0], 0xFFFFFFFF, null)
Pass document.createTreeWalker(paras[0], 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(paras[0], 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(paras[0], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[0].firstChild, 0, null)
Pass document.createTreeWalker(paras[0].firstChild, 0, (function(node) { return true }))
Pass document.createTreeWalker(paras[0].firstChild, 0, (function(node) { return false }))
Pass document.createTreeWalker(paras[0].firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, null)
Pass document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1].firstChild, 0, null)
Pass document.createTreeWalker(paras[1].firstChild, 0, (function(node) { return true }))
Pass document.createTreeWalker(paras[1].firstChild, 0, (function(node) { return false }))
Pass document.createTreeWalker(paras[1].firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, null)
Pass document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[5].firstChild, 0, null)
Pass document.createTreeWalker(paras[5].firstChild, 0, (function(node) { return true }))
Pass document.createTreeWalker(paras[5].firstChild, 0, (function(node) { return false }))
Pass document.createTreeWalker(paras[5].firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[5].firstChild, 0xFFFFFFFF, null)
Pass document.createTreeWalker(paras[5].firstChild, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(paras[5].firstChild, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(paras[5].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[5].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1, 0, null)
Pass document.createTreeWalker(foreignPara1, 0, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1, 0, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1, 0xFFFFFFFF, null)
Pass document.createTreeWalker(foreignPara1, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1.firstChild, 0, null)
Pass document.createTreeWalker(foreignPara1.firstChild, 0, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1.firstChild, 0, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, null)
Pass document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1, 0, null)
Pass document.createTreeWalker(detachedPara1, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedPara1, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1.firstChild, 0, null)
Pass document.createTreeWalker(detachedPara1.firstChild, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1.firstChild, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(document, 0, null)
Pass document.createTreeWalker(document, 0, (function(node) { return true }))
Pass document.createTreeWalker(document, 0, (function(node) { return false }))
Pass document.createTreeWalker(document, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(document, 0xFFFFFFFF, null)
Pass document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedDiv, 0, null)
Pass document.createTreeWalker(detachedDiv, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedDiv, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedDiv, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedDiv, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoc, 0, null)
Pass document.createTreeWalker(foreignDoc, 0, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoc, 0, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoc, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoc, 0xFFFFFFFF, null)
Pass document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara2, 0, null)
Pass document.createTreeWalker(foreignPara2, 0, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara2, 0, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara2, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara2, 0xFFFFFFFF, null)
Pass document.createTreeWalker(foreignPara2, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara2, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoc, 0, null)
Pass document.createTreeWalker(xmlDoc, 0, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoc, 0, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoc, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoc, 0xFFFFFFFF, null)
Pass document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlElement, 0, null)
Pass document.createTreeWalker(xmlElement, 0, (function(node) { return true }))
Pass document.createTreeWalker(xmlElement, 0, (function(node) { return false }))
Pass document.createTreeWalker(xmlElement, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlElement, 0xFFFFFFFF, null)
Pass document.createTreeWalker(xmlElement, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(xmlElement, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(xmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedTextNode, 0, null)
Pass document.createTreeWalker(detachedTextNode, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedTextNode, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignTextNode, 0, null)
Pass document.createTreeWalker(foreignTextNode, 0, (function(node) { return true }))
Pass document.createTreeWalker(foreignTextNode, 0, (function(node) { return false }))
Pass document.createTreeWalker(foreignTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, null)
Pass document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(processingInstruction, 0, null)
Pass document.createTreeWalker(processingInstruction, 0, (function(node) { return true }))
Pass document.createTreeWalker(processingInstruction, 0, (function(node) { return false }))
Pass document.createTreeWalker(processingInstruction, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(processingInstruction, 0xFFFFFFFF, null)
Pass document.createTreeWalker(processingInstruction, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(processingInstruction, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(processingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedProcessingInstruction, 0, null)
Pass document.createTreeWalker(detachedProcessingInstruction, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedProcessingInstruction, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedProcessingInstruction, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(comment, 0, null)
Pass document.createTreeWalker(comment, 0, (function(node) { return true }))
Pass document.createTreeWalker(comment, 0, (function(node) { return false }))
Pass document.createTreeWalker(comment, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(comment, 0xFFFFFFFF, null)
Pass document.createTreeWalker(comment, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(comment, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(comment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedComment, 0, null)
Pass document.createTreeWalker(detachedComment, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedComment, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedComment, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedComment, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedComment, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedComment, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(docfrag, 0, null)
Pass document.createTreeWalker(docfrag, 0, (function(node) { return true }))
Pass document.createTreeWalker(docfrag, 0, (function(node) { return false }))
Pass document.createTreeWalker(docfrag, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(docfrag, 0xFFFFFFFF, null)
Pass document.createTreeWalker(docfrag, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(docfrag, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(docfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(doctype, 0, null)
Pass document.createTreeWalker(doctype, 0, (function(node) { return true }))
Pass document.createTreeWalker(doctype, 0, (function(node) { return false }))
Pass document.createTreeWalker(doctype, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(doctype, 0xFFFFFFFF, null)
Pass document.createTreeWalker(doctype, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(doctype, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(doctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoctype, 0, null)
Pass document.createTreeWalker(foreignDoctype, 0, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoctype, 0, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoctype, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, null)
Pass document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1], 0, null)
Pass document.createTreeWalker(paras[1], 0, (function(node) { return true }))
Pass document.createTreeWalker(paras[1], 0, (function(node) { return false }))
Pass document.createTreeWalker(paras[1], 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1], 0xFFFFFFFF, null)
Pass document.createTreeWalker(paras[1], 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(paras[1], 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(paras[1], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2, 0, null)
Pass document.createTreeWalker(detachedPara2, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedPara2, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2.firstChild, 0, null)
Pass document.createTreeWalker(detachedPara2.firstChild, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2.firstChild, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2.firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(testDiv, 0, null)
Pass document.createTreeWalker(testDiv, 0, (function(node) { return true }))
Pass document.createTreeWalker(testDiv, 0, (function(node) { return false }))
Pass document.createTreeWalker(testDiv, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(testDiv, 0xFFFFFFFF, null)
Pass document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlElement, 0, null)
Pass document.createTreeWalker(detachedXmlElement, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlElement, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlElement, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignTextNode, 0, null)
Pass document.createTreeWalker(detachedForeignTextNode, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignTextNode, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlTextNode, 0, null)
Pass document.createTreeWalker(xmlTextNode, 0, (function(node) { return true }))
Pass document.createTreeWalker(xmlTextNode, 0, (function(node) { return false }))
Pass document.createTreeWalker(xmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, null)
Pass document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlTextNode, 0, null)
Pass document.createTreeWalker(detachedXmlTextNode, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlTextNode, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlComment, 0, null)
Pass document.createTreeWalker(xmlComment, 0, (function(node) { return true }))
Pass document.createTreeWalker(xmlComment, 0, (function(node) { return false }))
Pass document.createTreeWalker(xmlComment, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlComment, 0xFFFFFFFF, null)
Pass document.createTreeWalker(xmlComment, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(xmlComment, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(xmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignComment, 0, null)
Pass document.createTreeWalker(foreignComment, 0, (function(node) { return true }))
Pass document.createTreeWalker(foreignComment, 0, (function(node) { return false }))
Pass document.createTreeWalker(foreignComment, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignComment, 0xFFFFFFFF, null)
Pass document.createTreeWalker(foreignComment, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(foreignComment, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(foreignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignComment, 0, null)
Pass document.createTreeWalker(detachedForeignComment, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignComment, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignComment, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlComment, 0, null)
Pass document.createTreeWalker(detachedXmlComment, 0, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlComment, 0, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlComment, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, null)
Pass document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDocfrag, 0, null)
Pass document.createTreeWalker(foreignDocfrag, 0, (function(node) { return true }))
Pass document.createTreeWalker(foreignDocfrag, 0, (function(node) { return false }))
Pass document.createTreeWalker(foreignDocfrag, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, null)
Pass document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDocfrag, 0, null)
Pass document.createTreeWalker(xmlDocfrag, 0, (function(node) { return true }))
Pass document.createTreeWalker(xmlDocfrag, 0, (function(node) { return false }))
Pass document.createTreeWalker(xmlDocfrag, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, null)
Pass document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoctype, 0, null)
Pass document.createTreeWalker(xmlDoctype, 0, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoctype, 0, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoctype, 0, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, null)
Pass document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, null)
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, null)
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
Pass document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))

View file

@ -0,0 +1,324 @@
<!doctype html>
<title>TreeWalker tests</title>
<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
<meta name=timeout content=long>
<div id=log></div>
<script src=../../resources/testharness.js></script>
<script src=../../resources/testharnessreport.js></script>
<script src=../common.js></script>
<script>
"use strict";
// TODO .previousNode, .nextNode
test(function() {
var depth = 0;
var walker = document.createTreeWalker(document, NodeFilter.SHOW_ALL,
function() {
if (depth == 0) {
depth++;
walker.firstChild();
}
return NodeFilter.FILTER_ACCEPT;
});
walker.currentNode = document.body;
assert_throws_dom("InvalidStateError", function() { walker.parentNode() });
depth--;
assert_throws_dom("InvalidStateError", function() { walker.firstChild() });
depth--;
assert_throws_dom("InvalidStateError", function() { walker.lastChild() });
depth--;
assert_throws_dom("InvalidStateError", function() { walker.previousSibling() });
depth--;
assert_throws_dom("InvalidStateError", function() { walker.nextSibling() });
depth--;
assert_throws_dom("InvalidStateError", function() { walker.previousNode() });
depth--;
assert_throws_dom("InvalidStateError", function() { walker.nextNode() });
}, "Recursive filters need to throw");
function filterNode(node, whatToShow, filter) {
// "If active flag is set throw an "InvalidStateError"."
// Ignore active flag for these tests, we aren't calling recursively
// TODO Test me
// "Let n be node's nodeType attribute value minus 1."
var n = node.nodeType - 1;
// "If the nth bit (where 0 is the least significant bit) of whatToShow is
// not set, return FILTER_SKIP."
if (!(whatToShow & (1 << n))) {
return NodeFilter.FILTER_SKIP;
}
// "If filter is null, return FILTER_ACCEPT."
if (!filter) {
return NodeFilter.FILTER_ACCEPT;
}
// "Set the active flag."
//
// "Let result be the return value of invoking filter."
//
// "Unset the active flag."
//
// "If an exception was thrown, re-throw the exception."
// TODO Test me
//
// "Return result."
return filter(node);
}
function testTraverseChildren(type, walker, root, whatToShow, filter) {
// TODO We don't test .currentNode other than the root
walker.currentNode = root;
assert_equals(walker.currentNode, root, "Setting .currentNode");
var expectedReturn = null;
var expectedCurrentNode = root;
// "To traverse children of type type, run these steps:
//
// "Let node be the value of the currentNode attribute."
var node = walker.currentNode;
// "Set node to node's first child if type is first, and node's last child
// if type is last."
node = type == "first" ? node.firstChild : node.lastChild;
// "Main: While node is not null, run these substeps:"
while (node) {
// "Filter node and let result be the return value."
var result = filterNode(node, whatToShow, filter);
// "If result is FILTER_ACCEPT, then set the currentNode attribute to
// node and return node."
if (result == NodeFilter.FILTER_ACCEPT) {
expectedCurrentNode = expectedReturn = node;
break;
}
// "If result is FILTER_SKIP, run these subsubsteps:"
if (result == NodeFilter.FILTER_SKIP) {
// "Let child be node's first child if type is first, and node's
// last child if type is last."
var child = type == "first" ? node.firstChild : node.lastChild;
// "If child is not null, set node to child and goto Main."
if (child) {
node = child;
continue;
}
}
// "While node is not null, run these subsubsteps:"
while (node) {
// "Let sibling be node's next sibling if type is first, and node's
// previous sibling if type is last."
var sibling = type == "first" ? node.nextSibling
: node.previousSibling;
// "If sibling is not null, set node to sibling and goto Main."
if (sibling) {
node = sibling;
break;
}
// "Let parent be node's parent."
var parent = node.parentNode;
// "If parent is null, parent is root, or parent is currentNode
// attribute's value, return null."
if (!parent || parent == root || parent == walker.currentNode) {
expectedReturn = node = null;
break;
} else {
// "Otherwise, set node to parent."
node = parent;
}
}
}
if (type == "first") {
assert_equals(walker.firstChild(), expectedReturn, ".firstChild()");
assert_equals(walker.currentNode, expectedCurrentNode,
".currentNode after .firstChild()");
} else {
assert_equals(walker.lastChild(), expectedReturn, ".lastChild()");
assert_equals(walker.currentNode, expectedCurrentNode,
".currentNode after .lastChild()");
}
}
function testTraverseSiblings(type, walker, root, whatToShow, filter) {
// TODO We don't test .currentNode other than the root's first or last child
if (!root.firstChild) {
// Nothing much to test
walker.currentNode = root;
assert_equals(walker.currentNode, root, "Setting .currentNode");
if (type == "next") {
assert_equals(walker.nextSibling(), null, ".nextSibling()");
assert_equals(walker.currentNode, root,
".currentNode after .nextSibling()")
} else {
assert_equals(walker.previousSibling(), null, ".previousSibling()");
assert_equals(walker.currentNode, root,
".currentNode after .previousSibling()")
}
return;
}
if (type == "next") {
walker.currentNode = root.firstChild;
assert_equals(walker.currentNode, root.firstChild,
"Setting .currentNode");
} else {
walker.currentNode = root.lastChild;
assert_equals(walker.currentNode, root.lastChild,
"Setting .currentNode");
}
var expectedReturn = null;
var expectedCurrentNode = type == "next" ? root.firstChild : root.lastChild;
// "To traverse siblings of type type run these steps:"
(function() {
// "Let node be the value of the currentNode attribute."
var node = type == "next" ? root.firstChild : root.lastChild;
// "If node is root, return null.
//
// "Run these substeps:
do {
// "Let sibling be node's next sibling if type is next, and node's
// previous sibling if type is previous."
var sibling = type == "next" ? node.nextSibling :
node.previousSibling;
// "While sibling is not null, run these subsubsteps:"
while (sibling) {
// "Set node to sibling."
node = sibling;
// "Filter node and let result be the return value."
var result = filterNode(node, whatToShow, filter);
// "If result is FILTER_ACCEPT, then set the currentNode
// attribute to node and return node."
if (result == NodeFilter.FILTER_ACCEPT) {
expectedCurrentNode = expectedReturn = node;
return;
}
// "Set sibling to node's first child if type is next, and
// node's last child if type is previous."
sibling = type == "next" ? node.firstChild : node.lastChild;
// "If result is FILTER_REJECT or sibling is null, then set
// sibling to node's next sibling if type is next, and node's
// previous sibling if type is previous."
if (result == NodeFilter.FILTER_REJECT || !sibling) {
sibling = type == "next" ? node.nextSibling :
node.previousSibling;
}
}
// "Set node to its parent."
node = node.parentNode;
// "If node is null or is root, return null.
if (!node || node == root) {
return;
}
// "Filter node and if the return value is FILTER_ACCEPT, then
// return null."
if (filterNode(node, whatToShow, filter)) {
return;
}
// "Run these substeps again."
} while (true);
})();
if (type == "next") {
assert_equals(walker.nextSibling(), expectedReturn, ".nextSibling()");
assert_equals(walker.currentNode, expectedCurrentNode,
".currentNode after .nextSibling()");
} else {
assert_equals(walker.previousSibling(), expectedReturn, ".previousSibling()");
assert_equals(walker.currentNode, expectedCurrentNode,
".currentNode after .previousSibling()");
}
}
function testWalker(root, whatToShow, filter) {
var walker = document.createTreeWalker(root, whatToShow, filter);
assert_equals(walker.root, root, ".root");
assert_equals(walker.whatToShow, whatToShow, ".whatToShow");
assert_equals(walker.filter, filter, ".filter");
assert_equals(walker.currentNode, root, ".currentNode");
var expectedReturn = null;
var expectedCurrentNode = walker.currentNode;
// "The parentNode() method must run these steps:"
//
// "Let node be the value of the currentNode attribute."
var node = walker.currentNode;
// "While node is not null and is not root, run these substeps:"
while (node && node != root) {
// "Let node be node's parent."
node = node.parentNode;
// "If node is not null and filtering node returns FILTER_ACCEPT, then
// set the currentNode attribute to node, return node."
if (node && filterNode(node, whatToShow, filter) ==
NodeFilter.FILTER_ACCEPT) {
expectedCurrentNode = expectedReturn = node;
}
}
assert_equals(walker.parentNode(), expectedReturn, ".parentNode()");
assert_equals(walker.currentNode, expectedCurrentNode,
".currentNode after .parentNode()");
testTraverseChildren("first", walker, root, whatToShow, filter);
testTraverseChildren("last", walker, root, whatToShow, filter);
testTraverseSiblings("next", walker, root, whatToShow, filter);
testTraverseSiblings("previous", walker, root, whatToShow, filter);
}
var whatToShows = [
"0",
"0xFFFFFFFF",
"NodeFilter.SHOW_ELEMENT",
"NodeFilter.SHOW_ATTRIBUTE",
"NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT",
];
var callbacks = [
"null",
"(function(node) { return true })",
"(function(node) { return false })",
"(function(node) { return node.nodeName[0] == '#' })",
];
var tests = [];
for (var i = 0; i < testNodes.length; i++) {
for (var j = 0; j < whatToShows.length; j++) {
for (var k = 0; k < callbacks.length; k++) {
tests.push([
"document.createTreeWalker(" + testNodes[i] +
", " + whatToShows[j] + ", " + callbacks[k] + ")",
eval(testNodes[i]), eval(whatToShows[j]), eval(callbacks[k])
]);
}
}
}
generate_tests(testWalker, tests);
testDiv.style.display = "none";
</script>