NodeFilter should be a callback interface
https://bugs.webkit.org/show_bug.cgi?id=148415
Reviewed by Geoffrey Garen.
Source/WebCore:
NodeFilter is now a callback interface, instead of a regular interface,
as per the DOM specification:
https://dom.spec.whatwg.org/#interface-nodefilter
One major difference is that TreeWalker.filter / NodeIterator is
supposed to be a Function / Object (passed by JavaScript), but it was a
JSNodeFilter wrapper in WebKit. Also, window.NodeFilter is not supposed
to have a prototype property.
This behavior is consistent with Firefox. However, Chrome still has its
own NodeFilter wrapper.
Tests:
http/tests/w3c/dom/traversal/NodeIterator-expected.html (rebaselined)
http/tests/w3c/dom/traversal/TreeWalker.html (rebaselined)
* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Add / Remove files to the project files.
* dom/NodeFilterCondition.cpp:
(WebCore::NodeFilterCondition::acceptNode):
* dom/NodeFilterCondition.h:
* bindings/gobject/GObjectNodeFilterCondition.cpp:
(WebCore::GObjectNodeFilterCondition::acceptNode):
* bindings/gobject/GObjectNodeFilterCondition.h:
* bindings/objc/ObjCNodeFilterCondition.h:
* bindings/objc/ObjCNodeFilterCondition.mm:
(WebCore::ObjCNodeFilterCondition::acceptNode):
Drop ExecState parameter as it is not used.
* bindings/gobject/WebKitDOMNodeFilter.cpp:
(WebKit::core):
Use NativeNodeFilter type instead of NodeFilter. NodeFilter is now
a pure interface with 2 subclasses: NativeNodeFilter for the native
bindings and JSNodeFilter for the JS bindings.
* bindings/js/JSBindingsAllInOne.cpp:
Drop JSNodeFilterCondition.cpp as it was removed.
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
Throw a TypeError if the callback object being invoked is not callable
and does not have a callable property with the expected name. There
are several layout tests covering this (including w3c ones). Previously,
NodeFilter was not using the generic JSCallbackData and the exception
throwing was in JSNodeFilterCondition::acceptNode() instead.
* bindings/js/JSNodeFilterCondition.cpp: Removed.
* bindings/js/JSNodeFilterCondition.h: Removed.
Drop this class. JSNodeFilter / JSNodeFilterCustom now basically take
care of all this.
* bindings/js/JSNodeFilterCustom.cpp:
(WebCore::JSNodeFilter::acceptNode):
Complete rewrite. This file is now only used to provide a custom
implementation for JSNodeFilter::acceptNode(). The code is similar to
what was previously done in JSNodeFilterCondition::acceptNode().
There are several reasons we need custom bindings here:
- The bindings generator does not handle yet callback functions
returning anything else than a boolean.
- The specification clearly states that we need to rethrow exceptions
thrown by the callback function. However, the default behavior of
our bindings is to simply report the exception.
* bindings/scripts/CodeGeneratorGObject.pm:
Only skip functions that have parameters that are callback *functions*,
not callback *interfaces*. Callback interfaces are very similar to
interfaces and the generator is able to handle them. This change was
needed for the GTK bindings generator would no longer generate bindings
for Document.createNodeIterator() / Document.createTreeWalker(), now
that NodeFilter is a callback interface instead of a regular interface.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
Generate a toJS() function for callback interfaces as well. Previously,
we would only generate those for regular interfaces. This is needed
because NodeFilter is now a callback interface and it is exposed to
JS via NodeIterator.filter / TreeWalker.filter. The implementation
merely returns the callback object / function inside the JSCalbackData
so the JS gets back the object / function it passed in.
* bindings/scripts/CodeGeneratorObjC.pm:
Tweak the ObjC bindings generator to use NativeNodeFilter class instead
of NodeFilter as NodeFilter is now a pure interfaces. Native bindings
are now expected to use the NativeNodeFilter subclass instead.
* bindings/scripts/test/JS/JSTestCallback.cpp:
* bindings/scripts/test/JS/JSTestCallback.h:
* bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
* bindings/scripts/test/JS/JSTestCallbackFunction.h:
Rebaseline bindings tests now that we generate toJS() functions for
callback functions / interfaces.
* dom/DOMAllInOne.cpp:
Drop NodeFilter.cpp as it was removed.
* dom/NativeNodeFilter.cpp: Added.
* dom/NativeNodeFilter.h: Added.
Introduce new NativeNodeFilter class which subclasses the NodeFilter
interface and is used by native bindings. Its accept() implementation
uses NodeFilterCondition object internally to filter the nodes instead
of a JS callback.
* dom/NodeFilter.cpp: Removed.
* dom/NodeFilter.h:
Make NodeFilter a pure interface. Its previous code is now either in
NativeNodeFilter of JSNodeFilter.
* dom/NodeFilter.idl:
Make NodeFilter a callback interface instead of a regular interface,
as per the DOM specification. Also have its accept() operation return
an unsigned short instead of a short to match the specification.
The ObjC version still returns a short though for backward
compatibility.
* dom/NodeFilterCondition.cpp:
(WebCore::NodeFilterCondition::acceptNode):
* dom/NodeFilterCondition.h:
* dom/NodeIterator.cpp:
* dom/NodeIterator.h:
* dom/NodeIterator.idl:
* dom/Traversal.cpp:
* dom/Traversal.h:
* dom/TreeWalker.cpp:
* dom/TreeWalker.h:
* dom/TreeWalker.idl:
Stop passing ExecState to TreeWalker / NodeIterator functions. It no
longer seems to be needed as we now use the JSCallbackData abstraction
for invoking JS.
LayoutTests:
* fast/dom/TreeWalker/acceptNode-filter-expected.txt:
Rebaseline, the new exception message is different but the exception
type is the same.
* fast/dom/constants-expected.txt:
* fast/dom/constants.html:
Stop checking for constants on NodeFilter instances as those are now
Functions (implemented by the JavaScript). Those constants are on
window.NodeFilter still. I verified that this is consistant with
Firefox.
* fast/dom/global-constructors.html:
Update the check to verify that the prototype of a NodeFilter instance
is the Function prototype, not the NodeFilter prototype. NodeFilter
should not have a prototype as it is a callback interface.
* fast/dom/node-filter-gc.html:
Pass null for the filter argument instead of 0. The functions expect
a nullable NodeFilter object. Passing 0 here throws.
* fast/dom/node-filter-interface-expected.txt:
Rebaseline. window.NodeFilter no longer has a prototype. This is because
callback interfaces are not supposed to have a prototype property, as
per the Web IDL specification:
https://heycam.github.io/webidl/#interface-prototype-object
I also verified that this is consistent with Firefox.
* http/tests/w3c/dom/interfaces-expected.txt:
* http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt:
* http/tests/w3c/dom/traversal/NodeIterator-expected.txt:
* http/tests/w3c/dom/traversal/TreeWalker-expected.txt:
Rebaseline W3C tests. We are now passing a lot of checks because they
check that TreeWalker.filter / NodeIterator.filter is a Function.
* traversal/size-zero-run.html:
Fix the test to pass a null node filter instead of NodeFilter.FILTER_ACCEPT.
The call was not valid and now correctly throws. The JS is supposed to pass
in a nullable NodeFilter, not a constant. I think the code meant to say
"function() { return NodeFilter.FILTER_ACCEPT; }", however, I used null as
it is shorter and equivalent.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@189230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 10c6abc..d2c6438 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,52 @@
+2015-09-01 Chris Dumez <cdumez@apple.com>
+
+ NodeFilter should be a callback interface
+ https://bugs.webkit.org/show_bug.cgi?id=148415
+
+ Reviewed by Geoffrey Garen.
+
+ * fast/dom/TreeWalker/acceptNode-filter-expected.txt:
+ Rebaseline, the new exception message is different but the exception
+ type is the same.
+
+ * fast/dom/constants-expected.txt:
+ * fast/dom/constants.html:
+ Stop checking for constants on NodeFilter instances as those are now
+ Functions (implemented by the JavaScript). Those constants are on
+ window.NodeFilter still. I verified that this is consistant with
+ Firefox.
+
+ * fast/dom/global-constructors.html:
+ Update the check to verify that the prototype of a NodeFilter instance
+ is the Function prototype, not the NodeFilter prototype. NodeFilter
+ should not have a prototype as it is a callback interface.
+
+ * fast/dom/node-filter-gc.html:
+ Pass null for the filter argument instead of 0. The functions expect
+ a nullable NodeFilter object. Passing 0 here throws.
+
+ * fast/dom/node-filter-interface-expected.txt:
+ Rebaseline. window.NodeFilter no longer has a prototype. This is because
+ callback interfaces are not supposed to have a prototype property, as
+ per the Web IDL specification:
+ https://heycam.github.io/webidl/#interface-prototype-object
+
+ I also verified that this is consistent with Firefox.
+
+ * http/tests/w3c/dom/interfaces-expected.txt:
+ * http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt:
+ * http/tests/w3c/dom/traversal/NodeIterator-expected.txt:
+ * http/tests/w3c/dom/traversal/TreeWalker-expected.txt:
+ Rebaseline W3C tests. We are now passing a lot of checks because they
+ check that TreeWalker.filter / NodeIterator.filter is a Function.
+
+ * traversal/size-zero-run.html:
+ Fix the test to pass a null node filter instead of NodeFilter.FILTER_ACCEPT.
+ The call was not valid and now correctly throws. The JS is supposed to pass
+ in a nullable NodeFilter, not a constant. I think the code meant to say
+ "function() { return NodeFilter.FILTER_ACCEPT; }", however, I used null as
+ it is shorter and equivalent.
+
2015-09-01 Ryosuke Niwa <rniwa@webkit.org>
Add tests for computed method declarations with side effects
diff --git a/LayoutTests/fast/dom/TreeWalker/acceptNode-filter-expected.txt b/LayoutTests/fast/dom/TreeWalker/acceptNode-filter-expected.txt
index ca5da841..ee7d21a 100644
--- a/LayoutTests/fast/dom/TreeWalker/acceptNode-filter-expected.txt
+++ b/LayoutTests/fast/dom/TreeWalker/acceptNode-filter-expected.txt
@@ -26,15 +26,15 @@
PASS walker.nextNode(); walker.currentNode.id is 'B1'
Testing with object lacking acceptNode property
-PASS walker.firstChild(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
+PASS walker.firstChild(); threw exception TypeError: Type error.
PASS walker.currentNode.id; is 'root'
-PASS walker.nextNode(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
+PASS walker.nextNode(); threw exception TypeError: Type error.
PASS walker.currentNode.id; is 'root'
Testing with object with non-function acceptNode property
-PASS walker.firstChild(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
+PASS walker.firstChild(); threw exception TypeError: Type error.
PASS walker.currentNode.id; is 'root'
-PASS walker.nextNode(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
+PASS walker.nextNode(); threw exception TypeError: Type error.
PASS walker.currentNode.id; is 'root'
Testing with function having acceptNode function
diff --git a/LayoutTests/fast/dom/constants-expected.txt b/LayoutTests/fast/dom/constants-expected.txt
index 47fc5b2..bfd6570 100644
--- a/LayoutTests/fast/dom/constants-expected.txt
+++ b/LayoutTests/fast/dom/constants-expected.txt
@@ -24,22 +24,6 @@
PASS: window.CSSValue.CSS_PRIMITIVE_VALUE should be 1 and is.
PASS: window.CSSValue.CSS_VALUE_LIST should be 2 and is.
PASS: window.CSSValue.CSS_CUSTOM should be 3 and is.
-PASS: nodeFilter.FILTER_ACCEPT should be 1 and is.
-PASS: nodeFilter.FILTER_REJECT should be 2 and is.
-PASS: nodeFilter.FILTER_SKIP should be 3 and is.
-PASS: nodeFilter.SHOW_ALL should be 4294967295 and is.
-PASS: nodeFilter.SHOW_ELEMENT should be 1 and is.
-PASS: nodeFilter.SHOW_ATTRIBUTE should be 2 and is.
-PASS: nodeFilter.SHOW_TEXT should be 4 and is.
-PASS: nodeFilter.SHOW_CDATA_SECTION should be 8 and is.
-PASS: nodeFilter.SHOW_ENTITY_REFERENCE should be 16 and is.
-PASS: nodeFilter.SHOW_ENTITY should be 32 and is.
-PASS: nodeFilter.SHOW_PROCESSING_INSTRUCTION should be 64 and is.
-PASS: nodeFilter.SHOW_COMMENT should be 128 and is.
-PASS: nodeFilter.SHOW_DOCUMENT should be 256 and is.
-PASS: nodeFilter.SHOW_DOCUMENT_TYPE should be 512 and is.
-PASS: nodeFilter.SHOW_DOCUMENT_FRAGMENT should be 1024 and is.
-PASS: nodeFilter.SHOW_NOTATION should be 2048 and is.
PASS: window.NodeFilter.FILTER_ACCEPT should be 1 and is.
PASS: window.NodeFilter.FILTER_REJECT should be 2 and is.
PASS: window.NodeFilter.FILTER_SKIP should be 3 and is.
diff --git a/LayoutTests/fast/dom/constants.html b/LayoutTests/fast/dom/constants.html
index dce2588..195bbcd 100644
--- a/LayoutTests/fast/dom/constants.html
+++ b/LayoutTests/fast/dom/constants.html
@@ -32,7 +32,7 @@
print(message, color);
}
-var cssRule, cssValue, nodeFilter, event;
+var cssRule, cssValue, event;
function test() {
if (window.testRunner)
@@ -66,34 +66,6 @@
shouldBe("window.CSSValue.CSS_VALUE_LIST", 2);
shouldBe("window.CSSValue.CSS_CUSTOM", 3);
- var nodeIterator;
- try {
- nodeIterator = document.createNodeIterator(document,
- NodeFilter.SHOW_ELEMENT,
- function () { return NodeFilter.FILTER_ACCEPT; },
- false);
- } catch(e) {
- nodeIterator = new Object();
- }
-
- nodeFilter = nodeIterator.filter;
- shouldBe("nodeFilter.FILTER_ACCEPT", 1);
- shouldBe("nodeFilter.FILTER_REJECT", 2);
- shouldBe("nodeFilter.FILTER_SKIP", 3);
- shouldBe("nodeFilter.SHOW_ALL", 0xFFFFFFFF);
- shouldBe("nodeFilter.SHOW_ELEMENT", 0x00000001);
- shouldBe("nodeFilter.SHOW_ATTRIBUTE", 0x00000002);
- shouldBe("nodeFilter.SHOW_TEXT", 0x00000004);
- shouldBe("nodeFilter.SHOW_CDATA_SECTION", 0x00000008);
- shouldBe("nodeFilter.SHOW_ENTITY_REFERENCE", 0x00000010);
- shouldBe("nodeFilter.SHOW_ENTITY", 0x00000020);
- shouldBe("nodeFilter.SHOW_PROCESSING_INSTRUCTION", 0x00000040);
- shouldBe("nodeFilter.SHOW_COMMENT", 0x00000080);
- shouldBe("nodeFilter.SHOW_DOCUMENT", 0x00000100);
- shouldBe("nodeFilter.SHOW_DOCUMENT_TYPE", 0x00000200);
- shouldBe("nodeFilter.SHOW_DOCUMENT_FRAGMENT", 0x00000400);
- shouldBe("nodeFilter.SHOW_NOTATION", 0x00000800);
-
shouldBe("window.NodeFilter.FILTER_ACCEPT", 1);
shouldBe("window.NodeFilter.FILTER_REJECT", 2);
shouldBe("window.NodeFilter.FILTER_SKIP", 3);
diff --git a/LayoutTests/fast/dom/global-constructors.html b/LayoutTests/fast/dom/global-constructors.html
index 97d2fad..0b39dd0 100644
--- a/LayoutTests/fast/dom/global-constructors.html
+++ b/LayoutTests/fast/dom/global-constructors.html
@@ -85,7 +85,7 @@
try {
nodeFilter = document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, function () {}, false).filter;
} catch(e) {}
- shouldBe("window.NodeFilter.prototype.isPrototypeOf(nodeFilter)", true);
+ shouldBe("Function.prototype.isPrototypeOf(nodeFilter)", true);
originalNodePrototype = window.Node.prototype;
diff --git a/LayoutTests/fast/dom/node-filter-gc.html b/LayoutTests/fast/dom/node-filter-gc.html
index 0649ad2..a204c44 100644
--- a/LayoutTests/fast/dom/node-filter-gc.html
+++ b/LayoutTests/fast/dom/node-filter-gc.html
@@ -3,8 +3,8 @@
if (window.testRunner)
testRunner.dumpAsText();
-var iterator = document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, 0, false);
-var walker = document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, 0, false);
+var iterator = document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, null, false);
+var walker = document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, null, false);
// create lots of objects to force a garbage collection
var i = 0;
diff --git a/LayoutTests/fast/dom/node-filter-interface-expected.txt b/LayoutTests/fast/dom/node-filter-interface-expected.txt
index 5e54686..d4a98c8 100644
--- a/LayoutTests/fast/dom/node-filter-interface-expected.txt
+++ b/LayoutTests/fast/dom/node-filter-interface-expected.txt
@@ -39,8 +39,6 @@
[Configurable: true, enumerable: false, writable: false, value: 0]
* name
[Configurable: true, enumerable: false, writable: false, value: NodeFilter]
-* prototype
-[Configurable: false, enumerable: false, writable: false, value: [object NodeFilterPrototype]]
PASS successfullyParsed is true
TEST COMPLETE
diff --git a/LayoutTests/http/tests/w3c/dom/interfaces-expected.txt b/LayoutTests/http/tests/w3c/dom/interfaces-expected.txt
index 8222492..7d40872 100644
--- a/LayoutTests/http/tests/w3c/dom/interfaces-expected.txt
+++ b/LayoutTests/http/tests/w3c/dom/interfaces-expected.txt
@@ -1890,41 +1890,41 @@
PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousNode" with the proper type (9)
PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextNode" with the proper type (10)
PASS NodeFilter interface: existence and properties of interface object
-FAIL NodeFilter interface: existence and properties of interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
-FAIL NodeFilter interface: existence and properties of interface prototype object's "constructor" property assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: existence and properties of interface prototype object
+PASS NodeFilter interface: existence and properties of interface prototype object's "constructor" property
PASS NodeFilter interface: constant FILTER_ACCEPT on interface object
-FAIL NodeFilter interface: constant FILTER_ACCEPT on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant FILTER_ACCEPT on interface prototype object
PASS NodeFilter interface: constant FILTER_REJECT on interface object
-FAIL NodeFilter interface: constant FILTER_REJECT on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant FILTER_REJECT on interface prototype object
PASS NodeFilter interface: constant FILTER_SKIP on interface object
-FAIL NodeFilter interface: constant FILTER_SKIP on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant FILTER_SKIP on interface prototype object
PASS NodeFilter interface: constant SHOW_ALL on interface object
-FAIL NodeFilter interface: constant SHOW_ALL on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_ALL on interface prototype object
PASS NodeFilter interface: constant SHOW_ELEMENT on interface object
-FAIL NodeFilter interface: constant SHOW_ELEMENT on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_ELEMENT on interface prototype object
PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface object
-FAIL NodeFilter interface: constant SHOW_ATTRIBUTE on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface prototype object
PASS NodeFilter interface: constant SHOW_TEXT on interface object
-FAIL NodeFilter interface: constant SHOW_TEXT on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_TEXT on interface prototype object
PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface object
-FAIL NodeFilter interface: constant SHOW_CDATA_SECTION on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface prototype object
PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface object
-FAIL NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface prototype object
PASS NodeFilter interface: constant SHOW_ENTITY on interface object
-FAIL NodeFilter interface: constant SHOW_ENTITY on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_ENTITY on interface prototype object
PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface object
-FAIL NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface prototype object
PASS NodeFilter interface: constant SHOW_COMMENT on interface object
-FAIL NodeFilter interface: constant SHOW_COMMENT on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_COMMENT on interface prototype object
PASS NodeFilter interface: constant SHOW_DOCUMENT on interface object
-FAIL NodeFilter interface: constant SHOW_DOCUMENT on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_DOCUMENT on interface prototype object
PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface object
-FAIL NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface prototype object
PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface object
-FAIL NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototype object
PASS NodeFilter interface: constant SHOW_NOTATION on interface object
-FAIL NodeFilter interface: constant SHOW_NOTATION on interface prototype object assert_false: NodeFilter should not have a "prototype" property expected false got true
-FAIL NodeFilter interface: operation acceptNode(Node) assert_false: NodeFilter should not have a "prototype" property expected false got true
+PASS NodeFilter interface: constant SHOW_NOTATION on interface prototype object
+PASS NodeFilter interface: operation acceptNode(Node)
FAIL DOMTokenList interface: existence and properties of interface object assert_equals: class string of DOMTokenList expected "[object Function]" but got "[object DOMTokenListConstructor]"
PASS DOMTokenList interface object length
PASS DOMTokenList interface: existence and properties of interface prototype object
diff --git a/LayoutTests/http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt b/LayoutTests/http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt
index 72ead53..38ef008 100644
--- a/LayoutTests/http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt
+++ b/LayoutTests/http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt
@@ -3,5 +3,5 @@
PASS Optional arguments to createTreeWalker should be optional (1 passed).
PASS Optional arguments to createTreeWalker should be optional (2 passed).
PASS Optional arguments to createTreeWalker should be optional (3 passed, null).
-FAIL Optional arguments to createTreeWalker should be optional (3 passed, function). assert_equals: expected (function) function "function () {}" but got (object) object "[object NodeFilter]"
+PASS Optional arguments to createTreeWalker should be optional (3 passed, function).
diff --git a/LayoutTests/http/tests/w3c/dom/traversal/NodeIterator-expected.txt b/LayoutTests/http/tests/w3c/dom/traversal/NodeIterator-expected.txt
index 4d5986c4..8a56d7a 100644
--- a/LayoutTests/http/tests/w3c/dom/traversal/NodeIterator-expected.txt
+++ b/LayoutTests/http/tests/w3c/dom/traversal/NodeIterator-expected.txt
@@ -5,743 +5,743 @@
FAIL createNodeIterator() with undefined as arguments assert_equals: whatToShow expected 4294967295 but got 0
PASS Propagate exception from filter function
PASS document.createNodeIterator(paras[0], 0, null)
-FAIL document.createNodeIterator(paras[0], 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0], 0, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0], 0, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0], 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[0], 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(paras[0], 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0], 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0], 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[0].firstChild, 0, null)
-FAIL document.createNodeIterator(paras[0].firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0].firstChild, 0, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0].firstChild, 0, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0].firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1].firstChild, 0, null)
-FAIL document.createNodeIterator(paras[1].firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1].firstChild, 0, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1].firstChild, 0, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1].firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1, 0, null)
-FAIL document.createNodeIterator(foreignPara1, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1, 0, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1, 0, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(foreignPara1, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1.firstChild, 0, null)
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1.firstChild, 0, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1.firstChild, 0, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1, 0, null)
-FAIL document.createNodeIterator(detachedPara1, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedPara1, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1.firstChild, 0, null)
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1.firstChild, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1.firstChild, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(document, 0, null)
-FAIL document.createNodeIterator(document, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(document, 0, (function(node) { return true }))
+PASS document.createNodeIterator(document, 0, (function(node) { return false }))
+PASS document.createNodeIterator(document, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(document, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(document, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(document, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(document, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(document, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedDiv, 0, null)
-FAIL document.createNodeIterator(detachedDiv, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedDiv, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedDiv, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedDiv, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedDiv, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedDiv, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedDiv, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedDiv, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoc, 0, null)
-FAIL document.createNodeIterator(foreignDoc, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoc, 0, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoc, 0, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoc, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoc, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(foreignDoc, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoc, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoc, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara2, 0, null)
-FAIL document.createNodeIterator(foreignPara2, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara2, 0, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara2, 0, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara2, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara2, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(foreignPara2, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara2, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara2, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoc, 0, null)
-FAIL document.createNodeIterator(xmlDoc, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoc, 0, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoc, 0, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoc, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoc, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(xmlDoc, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoc, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoc, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlElement, 0, null)
-FAIL document.createNodeIterator(xmlElement, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlElement, 0, (function(node) { return true }))
+PASS document.createNodeIterator(xmlElement, 0, (function(node) { return false }))
+PASS document.createNodeIterator(xmlElement, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlElement, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(xmlElement, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlElement, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(xmlElement, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(xmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedTextNode, 0, null)
-FAIL document.createNodeIterator(detachedTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedTextNode, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedTextNode, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignTextNode, 0, null)
-FAIL document.createNodeIterator(foreignTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignTextNode, 0, (function(node) { return true }))
+PASS document.createNodeIterator(foreignTextNode, 0, (function(node) { return false }))
+PASS document.createNodeIterator(foreignTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(processingInstruction, 0, null)
-FAIL document.createNodeIterator(processingInstruction, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(processingInstruction, 0, (function(node) { return true }))
+PASS document.createNodeIterator(processingInstruction, 0, (function(node) { return false }))
+PASS document.createNodeIterator(processingInstruction, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(processingInstruction, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(processingInstruction, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(processingInstruction, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(processingInstruction, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(processingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedProcessingInstruction, 0, null)
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedProcessingInstruction, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedProcessingInstruction, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedProcessingInstruction, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(comment, 0, null)
-FAIL document.createNodeIterator(comment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(comment, 0, (function(node) { return true }))
+PASS document.createNodeIterator(comment, 0, (function(node) { return false }))
+PASS document.createNodeIterator(comment, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(comment, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(comment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(comment, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(comment, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(comment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedComment, 0, null)
-FAIL document.createNodeIterator(detachedComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedComment, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedComment, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedComment, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedComment, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedComment, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedComment, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(docfrag, 0, null)
-FAIL document.createNodeIterator(docfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(docfrag, 0, (function(node) { return true }))
+PASS document.createNodeIterator(docfrag, 0, (function(node) { return false }))
+PASS document.createNodeIterator(docfrag, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(docfrag, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(docfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(docfrag, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(docfrag, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(docfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(doctype, 0, null)
-FAIL document.createNodeIterator(doctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(doctype, 0, (function(node) { return true }))
+PASS document.createNodeIterator(doctype, 0, (function(node) { return false }))
+PASS document.createNodeIterator(doctype, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(doctype, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(doctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(doctype, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(doctype, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(doctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoctype, 0, null)
-FAIL document.createNodeIterator(foreignDoctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoctype, 0, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoctype, 0, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoctype, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1], 0, null)
-FAIL document.createNodeIterator(paras[1], 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1], 0, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1], 0, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1], 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1], 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(paras[1], 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1], 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1], 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2, 0, null)
-FAIL document.createNodeIterator(detachedPara2, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedPara2, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2.firstChild, 0, null)
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2.firstChild, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2.firstChild, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2.firstChild, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(testDiv, 0, null)
-FAIL document.createNodeIterator(testDiv, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(testDiv, 0, (function(node) { return true }))
+PASS document.createNodeIterator(testDiv, 0, (function(node) { return false }))
+PASS document.createNodeIterator(testDiv, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(testDiv, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(testDiv, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(testDiv, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(testDiv, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(testDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlElement, 0, null)
-FAIL document.createNodeIterator(detachedXmlElement, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlElement, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlElement, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlElement, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignTextNode, 0, null)
-FAIL document.createNodeIterator(detachedForeignTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignTextNode, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignTextNode, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlTextNode, 0, null)
-FAIL document.createNodeIterator(xmlTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlTextNode, 0, (function(node) { return true }))
+PASS document.createNodeIterator(xmlTextNode, 0, (function(node) { return false }))
+PASS document.createNodeIterator(xmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlTextNode, 0, null)
-FAIL document.createNodeIterator(detachedXmlTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlTextNode, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlTextNode, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlComment, 0, null)
-FAIL document.createNodeIterator(xmlComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlComment, 0, (function(node) { return true }))
+PASS document.createNodeIterator(xmlComment, 0, (function(node) { return false }))
+PASS document.createNodeIterator(xmlComment, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlComment, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(xmlComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlComment, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(xmlComment, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(xmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignComment, 0, null)
-FAIL document.createNodeIterator(foreignComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignComment, 0, (function(node) { return true }))
+PASS document.createNodeIterator(foreignComment, 0, (function(node) { return false }))
+PASS document.createNodeIterator(foreignComment, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignComment, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(foreignComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignComment, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(foreignComment, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(foreignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignComment, 0, null)
-FAIL document.createNodeIterator(detachedForeignComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignComment, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignComment, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignComment, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlComment, 0, null)
-FAIL document.createNodeIterator(detachedXmlComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlComment, 0, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlComment, 0, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlComment, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDocfrag, 0, null)
-FAIL document.createNodeIterator(foreignDocfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDocfrag, 0, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDocfrag, 0, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDocfrag, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDocfrag, 0, null)
-FAIL document.createNodeIterator(xmlDocfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDocfrag, 0, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDocfrag, 0, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDocfrag, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoctype, 0, null)
-FAIL document.createNodeIterator(xmlDoctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoctype, 0, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoctype, 0, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoctype, 0, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, null)
-FAIL document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, null)
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' }))
PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null)
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true }))
+PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false }))
+PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' }))
diff --git a/LayoutTests/http/tests/w3c/dom/traversal/TreeWalker-expected.txt b/LayoutTests/http/tests/w3c/dom/traversal/TreeWalker-expected.txt
index 9abed30..655784d 100644
--- a/LayoutTests/http/tests/w3c/dom/traversal/TreeWalker-expected.txt
+++ b/LayoutTests/http/tests/w3c/dom/traversal/TreeWalker-expected.txt
@@ -1,742 +1,743 @@
PASS document.createTreeWalker(paras[0], 0, null)
-FAIL document.createTreeWalker(paras[0], 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[0], 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[0].firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1].firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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(foreignPara1, 0, null)
-FAIL document.createTreeWalker(foreignPara1, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara1, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(document, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return false }))
+FAIL document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .nextSibling() expected Text node "TreeWalker tests" but got null
PASS document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedDiv, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return false }))
+FAIL document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .nextSibling() expected Text node "Wxyzabcd" but got null
PASS document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDoc, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return false }))
+FAIL document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .nextSibling() expected Text node "Efghijkl" but got Comment node <!--"Commenter" and "commentator" mean different things. I'v...-->
PASS document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara2, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara2, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDoc, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return false }))
+FAIL document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .nextSibling() expected Text node "do re mi fa so la ti" but got Comment node <!--I maliciously created a comment that will break incautiou...-->
PASS document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlElement, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlElement, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(processingInstruction, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(processingInstruction, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(comment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(comment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(docfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(docfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(doctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(doctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDoctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1], 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1], 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(testDiv, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+PASS document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return true }))
+PASS document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return false }))
+FAIL document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .nextSibling() expected Text node "Ijklmnop
+" but got Comment node <!--Alphabet soup?-->
PASS document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, null)
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlElement, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDocfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDocfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDoctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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)
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function "function (node) { return true }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function "function (node) { return false }" but got (object) object "[object NodeFilter]"
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function "function (node) { return node.nodeName[0] == '#' }" but got (object) object "[object NodeFilter]"
+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] == '#' }))
diff --git a/LayoutTests/traversal/size-zero-run.html b/LayoutTests/traversal/size-zero-run.html
index c67b22b..35b54c6 100644
--- a/LayoutTests/traversal/size-zero-run.html
+++ b/LayoutTests/traversal/size-zero-run.html
@@ -11,7 +11,7 @@
textnode2.nodeValue = "";
var root = document.body;
- var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, NodeFilter.FILTER_ACCEPT, false);
+ var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, null, false);
var n = it.nextNode();
while(n) {
@@ -28,4 +28,4 @@
<p>A crash would occur on iteration over a node containing such a run. NodeIterators, the innerText property, and hovering over a link all use iteration.</p>
<p>This tests iteration using both the innerText property and NodeIterators. It is successful if it doesn't crash Safari.</p>
<hr>
-<a href="#" id="node">hello</a></body></html>
\ No newline at end of file
+<a href="#" id="node">hello</a></body></html>
diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt
index 4745038..3abb1ec 100644
--- a/Source/WebCore/CMakeLists.txt
+++ b/Source/WebCore/CMakeLists.txt
@@ -1160,7 +1160,6 @@
bindings/js/JSNamedNodeMapCustom.cpp
bindings/js/JSNavigatorCustom.cpp
bindings/js/JSNodeCustom.cpp
- bindings/js/JSNodeFilterCondition.cpp
bindings/js/JSNodeFilterCustom.cpp
bindings/js/JSNodeIteratorCustom.cpp
bindings/js/JSNodeOrString.cpp
@@ -1435,8 +1434,8 @@
dom/NameNodeList.cpp
dom/NamedFlowCollection.cpp
dom/NamedNodeMap.cpp
+ dom/NativeNodeFilter.cpp
dom/Node.cpp
- dom/NodeFilter.cpp
dom/NodeFilterCondition.cpp
dom/NodeIterator.cpp
dom/NodeOrString.cpp
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 920948d..f2d6e5f 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,5 +1,147 @@
2015-09-01 Chris Dumez <cdumez@apple.com>
+ NodeFilter should be a callback interface
+ https://bugs.webkit.org/show_bug.cgi?id=148415
+
+ Reviewed by Geoffrey Garen.
+
+ NodeFilter is now a callback interface, instead of a regular interface,
+ as per the DOM specification:
+ https://dom.spec.whatwg.org/#interface-nodefilter
+
+ One major difference is that TreeWalker.filter / NodeIterator is
+ supposed to be a Function / Object (passed by JavaScript), but it was a
+ JSNodeFilter wrapper in WebKit. Also, window.NodeFilter is not supposed
+ to have a prototype property.
+
+ This behavior is consistent with Firefox. However, Chrome still has its
+ own NodeFilter wrapper.
+
+ Tests:
+ http/tests/w3c/dom/traversal/NodeIterator-expected.html (rebaselined)
+ http/tests/w3c/dom/traversal/TreeWalker.html (rebaselined)
+
+ * CMakeLists.txt:
+ * WebCore.vcxproj/WebCore.vcxproj:
+ * WebCore.vcxproj/WebCore.vcxproj.filters:
+ * WebCore.xcodeproj/project.pbxproj:
+ Add / Remove files to the project files.
+
+ * dom/NodeFilterCondition.cpp:
+ (WebCore::NodeFilterCondition::acceptNode):
+ * dom/NodeFilterCondition.h:
+ * bindings/gobject/GObjectNodeFilterCondition.cpp:
+ (WebCore::GObjectNodeFilterCondition::acceptNode):
+ * bindings/gobject/GObjectNodeFilterCondition.h:
+ * bindings/objc/ObjCNodeFilterCondition.h:
+ * bindings/objc/ObjCNodeFilterCondition.mm:
+ (WebCore::ObjCNodeFilterCondition::acceptNode):
+ Drop ExecState parameter as it is not used.
+
+ * bindings/gobject/WebKitDOMNodeFilter.cpp:
+ (WebKit::core):
+ Use NativeNodeFilter type instead of NodeFilter. NodeFilter is now
+ a pure interface with 2 subclasses: NativeNodeFilter for the native
+ bindings and JSNodeFilter for the JS bindings.
+
+ * bindings/js/JSBindingsAllInOne.cpp:
+ Drop JSNodeFilterCondition.cpp as it was removed.
+
+ * bindings/js/JSCallbackData.cpp:
+ (WebCore::JSCallbackData::invokeCallback):
+ Throw a TypeError if the callback object being invoked is not callable
+ and does not have a callable property with the expected name. There
+ are several layout tests covering this (including w3c ones). Previously,
+ NodeFilter was not using the generic JSCallbackData and the exception
+ throwing was in JSNodeFilterCondition::acceptNode() instead.
+
+ * bindings/js/JSNodeFilterCondition.cpp: Removed.
+ * bindings/js/JSNodeFilterCondition.h: Removed.
+ Drop this class. JSNodeFilter / JSNodeFilterCustom now basically take
+ care of all this.
+
+ * bindings/js/JSNodeFilterCustom.cpp:
+ (WebCore::JSNodeFilter::acceptNode):
+ Complete rewrite. This file is now only used to provide a custom
+ implementation for JSNodeFilter::acceptNode(). The code is similar to
+ what was previously done in JSNodeFilterCondition::acceptNode().
+ There are several reasons we need custom bindings here:
+ - The bindings generator does not handle yet callback functions
+ returning anything else than a boolean.
+ - The specification clearly states that we need to rethrow exceptions
+ thrown by the callback function. However, the default behavior of
+ our bindings is to simply report the exception.
+
+ * bindings/scripts/CodeGeneratorGObject.pm:
+ Only skip functions that have parameters that are callback *functions*,
+ not callback *interfaces*. Callback interfaces are very similar to
+ interfaces and the generator is able to handle them. This change was
+ needed for the GTK bindings generator would no longer generate bindings
+ for Document.createNodeIterator() / Document.createTreeWalker(), now
+ that NodeFilter is a callback interface instead of a regular interface.
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateCallbackHeader):
+ (GenerateCallbackImplementation):
+ Generate a toJS() function for callback interfaces as well. Previously,
+ we would only generate those for regular interfaces. This is needed
+ because NodeFilter is now a callback interface and it is exposed to
+ JS via NodeIterator.filter / TreeWalker.filter. The implementation
+ merely returns the callback object / function inside the JSCalbackData
+ so the JS gets back the object / function it passed in.
+
+ * bindings/scripts/CodeGeneratorObjC.pm:
+ Tweak the ObjC bindings generator to use NativeNodeFilter class instead
+ of NodeFilter as NodeFilter is now a pure interfaces. Native bindings
+ are now expected to use the NativeNodeFilter subclass instead.
+
+ * bindings/scripts/test/JS/JSTestCallback.cpp:
+ * bindings/scripts/test/JS/JSTestCallback.h:
+ * bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
+ * bindings/scripts/test/JS/JSTestCallbackFunction.h:
+ Rebaseline bindings tests now that we generate toJS() functions for
+ callback functions / interfaces.
+
+ * dom/DOMAllInOne.cpp:
+ Drop NodeFilter.cpp as it was removed.
+
+ * dom/NativeNodeFilter.cpp: Added.
+ * dom/NativeNodeFilter.h: Added.
+ Introduce new NativeNodeFilter class which subclasses the NodeFilter
+ interface and is used by native bindings. Its accept() implementation
+ uses NodeFilterCondition object internally to filter the nodes instead
+ of a JS callback.
+
+ * dom/NodeFilter.cpp: Removed.
+ * dom/NodeFilter.h:
+ Make NodeFilter a pure interface. Its previous code is now either in
+ NativeNodeFilter of JSNodeFilter.
+
+ * dom/NodeFilter.idl:
+ Make NodeFilter a callback interface instead of a regular interface,
+ as per the DOM specification. Also have its accept() operation return
+ an unsigned short instead of a short to match the specification.
+ The ObjC version still returns a short though for backward
+ compatibility.
+
+ * dom/NodeFilterCondition.cpp:
+ (WebCore::NodeFilterCondition::acceptNode):
+ * dom/NodeFilterCondition.h:
+
+ * dom/NodeIterator.cpp:
+ * dom/NodeIterator.h:
+ * dom/NodeIterator.idl:
+ * dom/Traversal.cpp:
+ * dom/Traversal.h:
+ * dom/TreeWalker.cpp:
+ * dom/TreeWalker.h:
+ * dom/TreeWalker.idl:
+ Stop passing ExecState to TreeWalker / NodeIterator functions. It no
+ longer seems to be needed as we now use the JSCallbackData abstraction
+ for invoking JS.
+
+2015-09-01 Chris Dumez <cdumez@apple.com>
+
Range.insersectsNode(node) is supposed to return true if node.parent is null
https://bugs.webkit.org/show_bug.cgi?id=148687
diff --git a/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj b/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
index 4379860..066c3ae 100644
--- a/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
+++ b/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
@@ -14543,20 +14543,6 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\dom\NodeFilter.cpp">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
- </ClCompile>
<ClCompile Include="..\dom\NodeFilterCondition.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
@@ -18451,20 +18437,6 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\bindings\js\JSNodeFilterCondition.cpp">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
- </ClCompile>
<ClCompile Include="..\bindings\js\JSNodeFilterCustom.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
@@ -22467,7 +22439,6 @@
<ClInclude Include="..\bindings\js\JSMutationCallback.h" />
<ClInclude Include="..\bindings\js\JSNodeCustom.h" />
<ClInclude Include="..\bindings\js\JSNodeOrString.h" />
- <ClInclude Include="..\bindings\js\JSNodeFilterCondition.h" />
<ClInclude Include="..\bindings\js\JSPluginElementFunctions.h" />
<ClInclude Include="..\bindings\js\JSWorkerGlobalScopeBase.h" />
<ClInclude Include="..\bindings\js\ScheduledAction.h" />
diff --git a/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters b/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
index a23cd62..dd9b2da 100644
--- a/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
+++ b/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
@@ -4401,9 +4401,6 @@
<ClCompile Include="..\bindings\js\JSNodeCustom.cpp">
<Filter>bindings\js</Filter>
</ClCompile>
- <ClCompile Include="..\bindings\js\JSNodeFilterCondition.cpp">
- <Filter>bindings\js</Filter>
- </ClCompile>
<ClCompile Include="..\bindings\js\JSNodeFilterCustom.cpp">
<Filter>bindings\js</Filter>
</ClCompile>
@@ -11489,9 +11486,6 @@
<ClInclude Include="..\bindings\js\JSNodeCustom.h">
<Filter>bindings\js</Filter>
</ClInclude>
- <ClInclude Include="..\bindings\js\JSNodeFilterCondition.h">
- <Filter>bindings\js</Filter>
- </ClInclude>
<ClInclude Include="..\bindings\js\JSPluginElementFunctions.h">
<Filter>bindings\js</Filter>
</ClInclude>
diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
index 9581ae0..b67571b 100644
--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -2684,6 +2684,7 @@
830030F51B7D33B500ED3AAC /* GenericCachedHTMLCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 830030F31B7D33A600ED3AAC /* GenericCachedHTMLCollection.cpp */; };
830030F61B7D33B500ED3AAC /* GenericCachedHTMLCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 830030F41B7D33A600ED3AAC /* GenericCachedHTMLCollection.h */; };
830030F81B7D3B7800ED3AAC /* CachedHTMLCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 830030F71B7D398800ED3AAC /* CachedHTMLCollection.h */; };
+ 8306EFF11B8BCEA50031D032 /* NativeNodeFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */; };
832B843419D8E55100B26055 /* SVGAnimateElementBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 832B843319D8E55100B26055 /* SVGAnimateElementBase.h */; };
832B843619D8E57400B26055 /* SVGAnimateElementBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 832B843519D8E57400B26055 /* SVGAnimateElementBase.cpp */; };
8348BFAB1B85729800912F36 /* ClassCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8348BFA91B85729500912F36 /* ClassCollection.cpp */; };
@@ -2697,6 +2698,7 @@
8386A97019F61E4F00E1EC4A /* StyleBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8386A96E19F61E4F00E1EC4A /* StyleBuilder.cpp */; };
839AAFEC1A0C0C8D00605F99 /* HTMLWBRElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 839AAFEA1A0C0C8D00605F99 /* HTMLWBRElement.cpp */; };
839AAFED1A0C0C8D00605F99 /* HTMLWBRElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 839AAFEB1A0C0C8D00605F99 /* HTMLWBRElement.h */; };
+ 83B2D1751B8BCD6A00A02E47 /* NativeNodeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83E959E11B8BC22B004D9385 /* NativeNodeFilter.h */; };
83B9687B19F8AB83004EF7AF /* StyleBuilderConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B9687919F8AB83004EF7AF /* StyleBuilderConverter.h */; };
83C05A5A1A686212007E5DEA /* StylePropertyShorthandFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83C05A581A686212007E5DEA /* StylePropertyShorthandFunctions.cpp */; };
83C05A5B1A686212007E5DEA /* StylePropertyShorthandFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C05A591A686212007E5DEA /* StylePropertyShorthandFunctions.h */; };
@@ -2718,6 +2720,7 @@
83C1D434178D5AB500141E68 /* SVGPathSegLinetoVerticalRel.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D422178D5AB400141E68 /* SVGPathSegLinetoVerticalRel.h */; };
83C1D435178D5AB500141E68 /* SVGPathSegMovetoAbs.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D423178D5AB400141E68 /* SVGPathSegMovetoAbs.h */; };
83C1D436178D5AB500141E68 /* SVGPathSegMovetoRel.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D424178D5AB400141E68 /* SVGPathSegMovetoRel.h */; };
+ 83F1206B1B8C104700D75F63 /* JSNodeFilterCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */; };
8419D2A7120D92D000141F8F /* SVGPathByteStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419D2A4120D92D000141F8F /* SVGPathByteStream.h */; };
8419D2A8120D92D000141F8F /* SVGPathByteStreamBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */; };
8419D2A9120D92D000141F8F /* SVGPathByteStreamBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419D2A6120D92D000141F8F /* SVGPathByteStreamBuilder.h */; };
@@ -2909,7 +2912,6 @@
8542A7980AE5C94300DF58DF /* JSSVGNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8574D1F30ADE6122004CBA11 /* JSSVGNumber.cpp */; };
8542A7990AE5C94400DF58DF /* JSSVGElementWrapperFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 8574D1F20ADE6122004CBA11 /* JSSVGElementWrapperFactory.h */; };
8542A79A0AE5C94400DF58DF /* JSSVGElementWrapperFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8574D1F10ADE6122004CBA11 /* JSSVGElementWrapperFactory.cpp */; };
- 854FE7300A2297BE0058D7AD /* NodeFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 854FE7260A2297BE0058D7AD /* NodeFilter.cpp */; };
854FE7310A2297BE0058D7AD /* NodeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 854FE7270A2297BE0058D7AD /* NodeFilter.h */; };
854FE7320A2297BE0058D7AD /* NodeFilterCondition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 854FE7280A2297BE0058D7AD /* NodeFilterCondition.cpp */; };
854FE7330A2297BE0058D7AD /* NodeFilterCondition.h in Headers */ = {isa = PBXBuildFile; fileRef = 854FE7290A2297BE0058D7AD /* NodeFilterCondition.h */; };
@@ -5487,9 +5489,6 @@
BCB16C280979C3BD00467741 /* CachedXSLStyleSheet.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB16C0F0979C3BD00467741 /* CachedXSLStyleSheet.h */; };
BCB16C290979C3BD00467741 /* CachedResourceLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB16C100979C3BD00467741 /* CachedResourceLoader.cpp */; };
BCB16C2A0979C3BD00467741 /* CachedResourceLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB16C110979C3BD00467741 /* CachedResourceLoader.h */; settings = {ATTRIBUTES = (Private, ); }; };
- BCB773610C17853D00132BA4 /* JSNodeFilterCondition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB7735E0C17853D00132BA4 /* JSNodeFilterCondition.cpp */; };
- BCB773620C17853D00132BA4 /* JSNodeFilterCondition.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB7735F0C17853D00132BA4 /* JSNodeFilterCondition.h */; };
- BCB773630C17853D00132BA4 /* JSNodeFilterCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB773600C17853D00132BA4 /* JSNodeFilterCustom.cpp */; };
BCB92D4F1293550B00C8387F /* FontBaseline.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB92D4E1293550B00C8387F /* FontBaseline.h */; settings = {ATTRIBUTES = (Private, ); }; };
BCBB8AB913F1AFB000734DF0 /* PODInterval.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBB8AB513F1AFB000734DF0 /* PODInterval.h */; settings = {ATTRIBUTES = (Private, ); }; };
BCBB8ABA13F1AFB000734DF0 /* PODIntervalTree.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBB8AB613F1AFB000734DF0 /* PODIntervalTree.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -10049,6 +10048,7 @@
830030F31B7D33A600ED3AAC /* GenericCachedHTMLCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GenericCachedHTMLCollection.cpp; sourceTree = "<group>"; };
830030F41B7D33A600ED3AAC /* GenericCachedHTMLCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericCachedHTMLCollection.h; sourceTree = "<group>"; };
830030F71B7D398800ED3AAC /* CachedHTMLCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedHTMLCollection.h; sourceTree = "<group>"; };
+ 8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NativeNodeFilter.cpp; sourceTree = "<group>"; };
832B843319D8E55100B26055 /* SVGAnimateElementBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimateElementBase.h; sourceTree = "<group>"; };
832B843519D8E57400B26055 /* SVGAnimateElementBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimateElementBase.cpp; sourceTree = "<group>"; };
8348BFA91B85729500912F36 /* ClassCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClassCollection.cpp; sourceTree = "<group>"; };
@@ -10086,6 +10086,8 @@
83C1D424178D5AB400141E68 /* SVGPathSegMovetoRel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegMovetoRel.h; sourceTree = "<group>"; };
83D26D3C1AFDCC50001B3873 /* ChildNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ChildNode.idl; sourceTree = "<group>"; };
83D26D3D1AFDCC50001B3873 /* ParentNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ParentNode.idl; sourceTree = "<group>"; };
+ 83E959E11B8BC22B004D9385 /* NativeNodeFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeNodeFilter.h; sourceTree = "<group>"; };
+ 83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCustom.cpp; sourceTree = "<group>"; };
8419D2A4120D92D000141F8F /* SVGPathByteStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStream.h; sourceTree = "<group>"; };
8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathByteStreamBuilder.cpp; sourceTree = "<group>"; };
8419D2A6120D92D000141F8F /* SVGPathByteStreamBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStreamBuilder.h; sourceTree = "<group>"; };
@@ -10261,7 +10263,6 @@
854075660AD6CBF900620C57 /* DOMHTMLOptionElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMHTMLOptionElement.h; sourceTree = "<group>"; };
854075670AD6CBF900620C57 /* DOMHTMLOptionElement.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMHTMLOptionElement.mm; sourceTree = "<group>"; };
854075680AD6CBF900620C57 /* DOMHTMLOptionElementInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMHTMLOptionElementInternal.h; sourceTree = "<group>"; };
- 854FE7260A2297BE0058D7AD /* NodeFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = NodeFilter.cpp; sourceTree = "<group>"; };
854FE7270A2297BE0058D7AD /* NodeFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NodeFilter.h; sourceTree = "<group>"; };
854FE7280A2297BE0058D7AD /* NodeFilterCondition.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = NodeFilterCondition.cpp; sourceTree = "<group>"; };
854FE7290A2297BE0058D7AD /* NodeFilterCondition.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NodeFilterCondition.h; sourceTree = "<group>"; };
@@ -13090,9 +13091,6 @@
BCB16C0F0979C3BD00467741 /* CachedXSLStyleSheet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CachedXSLStyleSheet.h; sourceTree = "<group>"; };
BCB16C100979C3BD00467741 /* CachedResourceLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = CachedResourceLoader.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
BCB16C110979C3BD00467741 /* CachedResourceLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CachedResourceLoader.h; sourceTree = "<group>"; };
- BCB7735E0C17853D00132BA4 /* JSNodeFilterCondition.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCondition.cpp; sourceTree = "<group>"; };
- BCB7735F0C17853D00132BA4 /* JSNodeFilterCondition.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSNodeFilterCondition.h; sourceTree = "<group>"; };
- BCB773600C17853D00132BA4 /* JSNodeFilterCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCustom.cpp; sourceTree = "<group>"; };
BCB92D4E1293550B00C8387F /* FontBaseline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontBaseline.h; sourceTree = "<group>"; };
BCBB8AB513F1AFB000734DF0 /* PODInterval.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PODInterval.h; sourceTree = "<group>"; };
BCBB8AB613F1AFB000734DF0 /* PODIntervalTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PODIntervalTree.h; sourceTree = "<group>"; };
@@ -21382,6 +21380,7 @@
BCBFB53A0DCD29CF0019B3E5 /* JSDOMWindowShell.cpp */,
BCBFB53B0DCD29CF0019B3E5 /* JSDOMWindowShell.h */,
65E0E9431133C89F00B4CB10 /* JSDOMWrapper.h */,
+ 83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */,
7C91A38D1B498ABE003F9EFA /* JSNodeOrString.cpp */,
7C91A38E1B498ABE003F9EFA /* JSNodeOrString.h */,
F3D461461161D53200CA0D09 /* JSErrorHandler.cpp */,
@@ -21565,7 +21564,6 @@
073794E719EE335C00E5A045 /* JSNavigatorCustom.cpp */,
BCD9C2600C17AA67005C90A2 /* JSNodeCustom.cpp */,
BC9439C2116CF4940048C750 /* JSNodeCustom.h */,
- BCB773600C17853D00132BA4 /* JSNodeFilterCustom.cpp */,
1A750DD30A90E729000FF215 /* JSNodeIteratorCustom.cpp */,
BCD9C2610C17AA67005C90A2 /* JSNodeListCustom.cpp */,
AD20B18C18E9D216005A8083 /* JSNodeListCustom.h */,
@@ -21884,8 +21882,6 @@
93B70D4E09EB0C7C009D8468 /* JSEventListener.h */,
935F45400F7C3B5F00D7C1FB /* JSLazyEventListener.cpp */,
935F45410F7C3B5F00D7C1FB /* JSLazyEventListener.h */,
- BCB7735E0C17853D00132BA4 /* JSNodeFilterCondition.cpp */,
- BCB7735F0C17853D00132BA4 /* JSNodeFilterCondition.h */,
);
name = "Callback Objects";
sourceTree = "<group>";
@@ -23396,10 +23392,11 @@
85ACA9F90A9B631000671E90 /* NamedNodeMap.idl */,
A81872190977D3C0005826D9 /* NameNodeList.cpp */,
A81872130977D3C0005826D9 /* NameNodeList.h */,
+ 8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */,
+ 83E959E11B8BC22B004D9385 /* NativeNodeFilter.h */,
A8C4A7EE09D563270003AC8D /* Node.cpp */,
14115B5109F84B7100CA4FC1 /* Node.h */,
14DC0D0B09FECFA4007B0235 /* Node.idl */,
- 854FE7260A2297BE0058D7AD /* NodeFilter.cpp */,
854FE7270A2297BE0058D7AD /* NodeFilter.h */,
14115AF909F847D600CA4FC1 /* NodeFilter.idl */,
854FE7280A2297BE0058D7AD /* NodeFilterCondition.cpp */,
@@ -24758,6 +24755,7 @@
853BF4DB0ABB6B55008647BB /* DOMNode.h in Headers */,
854075260AD6C66700620C57 /* DOMNodeFilter.h in Headers */,
85B498FB0ADB340200925CBB /* DOMNodeInternal.h in Headers */,
+ 83B2D1751B8BCD6A00A02E47 /* NativeNodeFilter.h in Headers */,
85526C370AB0A17E000302EA /* DOMNodeIterator.h in Headers */,
850B41C20AD9E7E700A6ED4F /* DOMNodeIteratorInternal.h in Headers */,
85ACAA8D0A9B759C00671E90 /* DOMNodeList.h in Headers */,
@@ -25640,7 +25638,6 @@
073BE34D17D17E7A002BD431 /* JSNavigatorUserMediaSuccessCallback.h in Headers */,
BC9439C3116CF4940048C750 /* JSNodeCustom.h in Headers */,
14115B7309F84CD600CA4FC1 /* JSNodeFilter.h in Headers */,
- BCB773620C17853D00132BA4 /* JSNodeFilterCondition.h in Headers */,
1A750D8E0A90E521000FF215 /* JSNodeIterator.h in Headers */,
BCD9C2C30C17B69E005C90A2 /* JSNodeList.h in Headers */,
AD20B18D18E9D237005A8083 /* JSNodeListCustom.h in Headers */,
@@ -28889,6 +28886,7 @@
BC2ED6BC0C6BD2F000920BFF /* JSAttrCustom.cpp in Sources */,
FDA15E9D12B03EE1003A583A /* JSAudioBuffer.cpp in Sources */,
FDF7E9C313AC21DB00A51EAC /* JSAudioBufferCallback.cpp in Sources */,
+ 83F1206B1B8C104700D75F63 /* JSNodeFilterCustom.cpp in Sources */,
FDA15E9F12B03EE1003A583A /* JSAudioBufferSourceNode.cpp in Sources */,
FDEAAAF312B02EE400DCF33B /* JSAudioBufferSourceNodeCustom.cpp in Sources */,
FDA15EA512B03EE1003A583A /* JSAudioContext.cpp in Sources */,
@@ -29166,6 +29164,7 @@
511EF2D117F0FDF100E4FA16 /* JSIDBObjectStoreCustom.cpp in Sources */,
511EF2C817F0FD3500E4FA16 /* JSIDBOpenDBRequest.cpp in Sources */,
511EF2C917F0FD3500E4FA16 /* JSIDBRequest.cpp in Sources */,
+ 8306EFF11B8BCEA50031D032 /* NativeNodeFilter.cpp in Sources */,
511EF2CA17F0FD3500E4FA16 /* JSIDBTransaction.cpp in Sources */,
511EF2CB17F0FD3500E4FA16 /* JSIDBVersionChangeEvent.cpp in Sources */,
BC6C49F30D7DBA0500FFA558 /* JSImageConstructor.cpp in Sources */,
@@ -29231,8 +29230,6 @@
14DC0D3709FED073007B0235 /* JSNode.cpp in Sources */,
BCD9C2640C17AA67005C90A2 /* JSNodeCustom.cpp in Sources */,
14115B7209F84CD600CA4FC1 /* JSNodeFilter.cpp in Sources */,
- BCB773610C17853D00132BA4 /* JSNodeFilterCondition.cpp in Sources */,
- BCB773630C17853D00132BA4 /* JSNodeFilterCustom.cpp in Sources */,
1A750D8D0A90E521000FF215 /* JSNodeIterator.cpp in Sources */,
1A750DD40A90E729000FF215 /* JSNodeIteratorCustom.cpp in Sources */,
BCD9C2C20C17B69E005C90A2 /* JSNodeList.cpp in Sources */,
@@ -29768,7 +29765,6 @@
267726001A5B3AD9003C24DD /* NFAToDFA.cpp in Sources */,
BCEF43E00E674110001C1287 /* NinePieceImage.cpp in Sources */,
A8C4A80009D563270003AC8D /* Node.cpp in Sources */,
- 854FE7300A2297BE0058D7AD /* NodeFilter.cpp in Sources */,
854FE7320A2297BE0058D7AD /* NodeFilterCondition.cpp in Sources */,
854FE7340A2297BE0058D7AD /* NodeIterator.cpp in Sources */,
4FFC022B1643B710004E1638 /* NodeRareData.cpp in Sources */,
diff --git a/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.cpp b/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.cpp
index adfd8c1..e0abb7c 100644
--- a/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.cpp
+++ b/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.cpp
@@ -29,7 +29,7 @@
g_object_set_data(G_OBJECT(m_filter.get()), "webkit-core-node-filter", nullptr);
}
-short GObjectNodeFilterCondition::acceptNode(JSC::ExecState*, Node* node) const
+short GObjectNodeFilterCondition::acceptNode(Node* node) const
{
if (!node)
return NodeFilter::FILTER_REJECT;
diff --git a/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.h b/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.h
index 6128025..5366a53 100644
--- a/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.h
+++ b/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.h
@@ -36,7 +36,7 @@
return adoptRef(*new GObjectNodeFilterCondition(filter));
}
- virtual short acceptNode(JSC::ExecState*, Node*) const;
+ virtual short acceptNode(Node*) const override;
private:
GObjectNodeFilterCondition(WebKitDOMNodeFilter* filter)
diff --git a/Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp b/Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp
index 258fc4a..d80fe70 100644
--- a/Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp
+++ b/Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp
@@ -20,7 +20,7 @@
#include "WebKitDOMNodeFilter.h"
#include "GObjectNodeFilterCondition.h"
-#include "NodeFilter.h"
+#include "NativeNodeFilter.h"
#include "WebKitDOMNode.h"
#include "WebKitDOMNodeFilterPrivate.h"
#include <wtf/HashMap.h>
@@ -72,7 +72,7 @@
RefPtr<WebCore::NodeFilter> coreNodeFilter = static_cast<WebCore::NodeFilter*>(g_object_get_data(G_OBJECT(nodeFilter), "webkit-core-node-filter"));
if (!coreNodeFilter) {
- coreNodeFilter = WebCore::NodeFilter::create(WebCore::GObjectNodeFilterCondition::create(nodeFilter));
+ coreNodeFilter = WebCore::NativeNodeFilter::create(WebCore::GObjectNodeFilterCondition::create(nodeFilter));
nodeFilterMap().add(coreNodeFilter.get(), nodeFilter);
g_object_weak_ref(G_OBJECT(nodeFilter), nodeFilterObjectDestroyedCallback, coreNodeFilter.get());
g_object_set_data(G_OBJECT(nodeFilter), "webkit-core-node-filter", coreNodeFilter.get());
diff --git a/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp b/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
index 1b5e95b..b5c5ff2 100644
--- a/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
+++ b/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
@@ -114,7 +114,6 @@
#include "JSMutationObserverCustom.cpp"
#include "JSNamedNodeMapCustom.cpp"
#include "JSNodeCustom.cpp"
-#include "JSNodeFilterCondition.cpp"
#include "JSNodeFilterCustom.cpp"
#include "JSNodeIteratorCustom.cpp"
#include "JSNodeListCustom.cpp"
diff --git a/Source/WebCore/bindings/js/JSCallbackData.cpp b/Source/WebCore/bindings/js/JSCallbackData.cpp
index d98e632..6d40a47 100644
--- a/Source/WebCore/bindings/js/JSCallbackData.cpp
+++ b/Source/WebCore/bindings/js/JSCallbackData.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2007-2009, 2015 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -33,51 +33,47 @@
#include "JSDOMBinding.h"
#include "JSMainThreadExecState.h"
#include "JSMainThreadExecStateInstrumentation.h"
+#include <runtime/Exception.h>
using namespace JSC;
namespace WebCore {
-void JSCallbackData::deleteData(void* context)
+JSValue JSCallbackData::invokeCallback(JSObject* callback, MarkedArgumentBuffer& args, CallbackType method, PropertyName functionName, NakedPtr<Exception>& returnedException)
{
- delete static_cast<JSCallbackData*>(context);
-}
+ ASSERT(callback);
-JSValue JSCallbackData::invokeCallback(MarkedArgumentBuffer& args, CallbackType method, PropertyName functionName, NakedPtr<Exception>& returnedException)
-{
- ASSERT(callback());
- return invokeCallback(callback(), args, method, functionName, returnedException);
-}
+ auto* globalObject = JSC::jsCast<JSDOMGlobalObject*>(callback->globalObject());
+ ASSERT(globalObject);
-JSValue JSCallbackData::invokeCallback(JSValue thisValue, MarkedArgumentBuffer& args, CallbackType method, PropertyName functionName, NakedPtr<Exception>& returnedException)
-{
- ASSERT(callback());
- ASSERT(globalObject());
-
- ExecState* exec = globalObject()->globalExec();
+ ExecState* exec = globalObject->globalExec();
JSValue function;
CallData callData;
CallType callType = CallTypeNone;
if (method != CallbackType::Object) {
- function = callback();
- callType = callback()->methodTable()->getCallData(callback(), callData);
+ function = callback;
+ callType = callback->methodTable()->getCallData(callback, callData);
}
if (callType == CallTypeNone) {
- if (method == CallbackType::Function)
+ if (method == CallbackType::Function) {
+ returnedException = Exception::create(exec->vm(), createTypeError(exec));
return JSValue();
+ }
ASSERT(!functionName.isNull());
- function = callback()->get(exec, functionName);
+ function = callback->get(exec, functionName);
callType = getCallData(function, callData);
- if (callType == CallTypeNone)
+ if (callType == CallTypeNone) {
+ returnedException = Exception::create(exec->vm(), createTypeError(exec));
return JSValue();
+ }
}
ASSERT(!function.isEmpty());
ASSERT(callType != CallTypeNone);
- ScriptExecutionContext* context = globalObject()->scriptExecutionContext();
+ ScriptExecutionContext* context = globalObject->scriptExecutionContext();
// We will fail to get the context if the frame has been detached.
if (!context)
return JSValue();
@@ -86,12 +82,17 @@
returnedException = nullptr;
JSValue result = context->isDocument()
- ? JSMainThreadExecState::call(exec, function, callType, callData, thisValue, args, returnedException)
- : JSC::call(exec, function, callType, callData, thisValue, args, returnedException);
+ ? JSMainThreadExecState::call(exec, function, callType, callData, callback, args, returnedException)
+ : JSC::call(exec, function, callType, callData, callback, args, returnedException);
InspectorInstrumentation::didCallFunction(cookie, context);
return result;
}
+bool JSCallbackDataWeak::WeakOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, SlotVisitor& visitor)
+{
+ return visitor.containsOpaqueRoot(context);
+}
+
} // namespace WebCore
diff --git a/Source/WebCore/bindings/js/JSCallbackData.h b/Source/WebCore/bindings/js/JSCallbackData.h
index 4ed0807..7acf921f 100644
--- a/Source/WebCore/bindings/js/JSCallbackData.h
+++ b/Source/WebCore/bindings/js/JSCallbackData.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2007-2009, 2015 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -45,13 +45,12 @@
class JSCallbackData {
public:
- static void deleteData(void*);
+ enum class CallbackType { Function, Object, FunctionOrObject };
- JSCallbackData(JSC::JSObject* callback, JSDOMGlobalObject* globalObject)
- : m_callback(globalObject->vm(), callback)
- , m_globalObject(globalObject->vm(), globalObject)
+protected:
+ JSCallbackData()
#ifndef NDEBUG
- , m_thread(currentThread())
+ : m_thread(currentThread())
#endif
{
}
@@ -62,25 +61,61 @@
ASSERT(m_thread == currentThread());
#endif
}
-
- JSC::JSObject* callback() { return m_callback.get(); }
- JSDOMGlobalObject* globalObject() { return m_globalObject.get(); }
- enum class CallbackType { Function, Object, FunctionOrObject };
- JSC::JSValue invokeCallback(JSC::MarkedArgumentBuffer&, CallbackType, JSC::PropertyName functionName, NakedPtr<JSC::Exception>& returnedException);
- JSC::JSValue invokeCallback(JSC::JSValue thisValue, JSC::MarkedArgumentBuffer&, CallbackType, JSC::PropertyName functionName, NakedPtr<JSC::Exception>& returnedException);
+ static JSC::JSValue invokeCallback(JSC::JSObject* callback, JSC::MarkedArgumentBuffer&, CallbackType, JSC::PropertyName functionName, NakedPtr<JSC::Exception>& returnedException);
private:
- JSC::Strong<JSC::JSObject> m_callback;
- JSC::Strong<JSDOMGlobalObject> m_globalObject;
#ifndef NDEBUG
ThreadIdentifier m_thread;
#endif
};
+class JSCallbackDataStrong : public JSCallbackData {
+public:
+ JSCallbackDataStrong(JSC::JSObject* callback, void*)
+ : m_callback(callback->globalObject()->vm(), callback)
+ {
+ }
+
+ JSC::JSObject* callback() { return m_callback.get(); }
+ JSDOMGlobalObject* globalObject() { return JSC::jsCast<JSDOMGlobalObject*>(m_callback->globalObject()); }
+
+ JSC::JSValue invokeCallback(JSC::MarkedArgumentBuffer& args, CallbackType callbackType, JSC::PropertyName functionName, NakedPtr<JSC::Exception>& returnedException)
+ {
+ return JSCallbackData::invokeCallback(callback(), args, callbackType, functionName, returnedException);
+ }
+
+private:
+ JSC::Strong<JSC::JSObject> m_callback;
+};
+
+class JSCallbackDataWeak : public JSCallbackData {
+public:
+ JSCallbackDataWeak(JSC::JSObject* callback, void* owner)
+ : m_callback(callback, &m_weakOwner, owner)
+ {
+ }
+
+ JSC::JSObject* callback() { return m_callback.get(); }
+ JSDOMGlobalObject* globalObject() { return JSC::jsCast<JSDOMGlobalObject*>(m_callback->globalObject()); }
+
+ JSC::JSValue invokeCallback(JSC::MarkedArgumentBuffer& args, CallbackType callbackType, JSC::PropertyName functionName, NakedPtr<JSC::Exception>& returnedException)
+ {
+ return JSCallbackData::invokeCallback(callback(), args, callbackType, functionName, returnedException);
+ }
+
+private:
+ class WeakOwner : public JSC::WeakHandleOwner {
+ virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&);
+ };
+ WeakOwner m_weakOwner;
+ JSC::Weak<JSC::JSObject> m_callback;
+};
+
class DeleteCallbackDataTask : public ScriptExecutionContext::Task {
public:
- DeleteCallbackDataTask(JSCallbackData* data)
+ template <typename CallbackDataType>
+ explicit DeleteCallbackDataTask(CallbackDataType* data)
: ScriptExecutionContext::Task(ScriptExecutionContext::Task::CleanupTask, [data] (ScriptExecutionContext&) {
delete data;
})
diff --git a/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp b/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp
deleted file mode 100644
index 7b4119a..0000000
--- a/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSNodeFilterCondition.h"
-
-#include "JSMainThreadExecState.h"
-#include "JSNode.h"
-#include "JSNodeFilter.h"
-#include "NodeFilter.h"
-#include <runtime/Error.h>
-#include <runtime/JSLock.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-JSNodeFilterCondition::JSNodeFilterCondition(VM&, NodeFilter* owner, JSValue filter)
- : m_filter(filter.isObject() ? Weak<JSObject>(jsCast<JSObject*>(filter), &m_weakOwner, owner) : nullptr)
-{
-}
-
-short JSNodeFilterCondition::acceptNode(JSC::ExecState* exec, Node* filterNode) const
-{
- JSLockHolder lock(exec);
-
- if (!m_filter)
- return NodeFilter::FILTER_ACCEPT;
-
- // Exec is null if we've been called from a non-JavaScript language and the document
- // is no longer able to run JavaScript (e.g., it's disconnected from its frame).
- if (!exec)
- return NodeFilter::FILTER_REJECT;
-
- JSValue filter = m_filter.get();
- CallData callData;
- CallType callType = getCallData(filter, callData);
- if (callType == CallTypeNone) {
- filter = filter.get(exec, Identifier::fromString(exec, "acceptNode"));
- callType = getCallData(filter, callData);
- if (callType == CallTypeNone) {
- exec->vm().throwException(exec, createTypeError(exec, "NodeFilter object does not have an acceptNode function"));
- return NodeFilter::FILTER_REJECT;
- }
- }
-
- MarkedArgumentBuffer args;
- // FIXME: The node should have the prototype chain that came from its document, not
- // whatever prototype chain might be on the window this filter came from. Bug 27662
- args.append(toJS(exec, deprecatedGlobalObjectForPrototype(exec), filterNode));
- if (exec->hadException())
- return NodeFilter::FILTER_REJECT;
-
- JSValue result = JSC::call(exec, filter, callType, callData, m_filter.get(), args);
- if (exec->hadException())
- return NodeFilter::FILTER_REJECT;
-
- int intResult = result.toInt32(exec);
- if (exec->hadException())
- return NodeFilter::FILTER_REJECT;
-
- return intResult;
-}
-
-bool JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, SlotVisitor& visitor)
-{
- return visitor.containsOpaqueRoot(context);
-}
-
-} // namespace WebCore
diff --git a/Source/WebCore/bindings/js/JSNodeFilterCondition.h b/Source/WebCore/bindings/js/JSNodeFilterCondition.h
deleted file mode 100644
index a6a1be3..0000000
--- a/Source/WebCore/bindings/js/JSNodeFilterCondition.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSNodeFilterCondition_h
-#define JSNodeFilterCondition_h
-
-#include "NodeFilterCondition.h"
-#include <heap/Weak.h>
-#include <heap/WeakInlines.h>
-#include <runtime/JSCInlines.h>
-#include <runtime/JSCJSValue.h>
-#include <wtf/PassRefPtr.h>
-
-namespace WebCore {
-
- class Node;
- class NodeFilter;
-
- class JSNodeFilterCondition : public NodeFilterCondition {
- public:
- static Ref<JSNodeFilterCondition> create(JSC::VM& vm, NodeFilter* owner, JSC::JSValue filter)
- {
- return adoptRef(*new JSNodeFilterCondition(vm, owner, filter));
- }
-
- private:
- JSNodeFilterCondition(JSC::VM&, NodeFilter* owner, JSC::JSValue filter);
-
- virtual short acceptNode(JSC::ExecState*, Node*) const;
-
- class WeakOwner : public JSC::WeakHandleOwner {
- virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&);
- };
- WeakOwner m_weakOwner;
- mutable JSC::Weak<JSC::JSObject> m_filter;
- };
-
-} // namespace WebCore
-
-#endif // JSNodeFilterCondition_h
diff --git a/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp b/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp
index 70533db..5899224 100644
--- a/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp
+++ b/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,41 +10,58 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
#include "JSNodeFilter.h"
-#include "JSNodeFilterCondition.h"
+#include "JSCallbackData.h"
+#include "JSNode.h"
+#include "NodeFilter.h"
namespace WebCore {
-void JSNodeFilter::visitAdditionalChildren(JSC::SlotVisitor& visitor)
+using namespace JSC;
+
+// FIXME: The bindings generator is currently not able to generate
+// callback function calls if they return something other than a
+// boolean.
+uint16_t JSNodeFilter::acceptNode(Node* node)
{
- visitor.addOpaqueRoot(&impl());
-}
+ Ref<JSNodeFilter> protect(*this);
-RefPtr<NodeFilter> JSNodeFilter::toWrapped(JSC::VM& vm, JSC::JSValue value)
-{
- if (value.inherits(JSNodeFilter::info()))
- return &JSC::jsCast<JSNodeFilter*>(asObject(value))->impl();
+ JSLockHolder lock(m_data->globalObject()->vm());
- if (!value.isObject())
- return nullptr;
+ ExecState* exec = m_data->globalObject()->globalExec();
+ MarkedArgumentBuffer args;
+ args.append(toJS(exec, m_data->globalObject(), node));
+ if (exec->hadException())
+ return NodeFilter::FILTER_REJECT;
- RefPtr<NodeFilter> result = NodeFilter::create();
- result->setCondition(JSNodeFilterCondition::create(vm, result.get(), value));
+ NakedPtr<Exception> returnedException;
+ JSValue value = m_data->invokeCallback(args, JSCallbackData::CallbackType::FunctionOrObject, Identifier::fromString(exec, "acceptNode"), returnedException);
+ if (returnedException) {
+ // Rethrow exception.
+ exec->vm().setException(returnedException);
+
+ return NodeFilter::FILTER_REJECT;
+ }
+
+ uint16_t result = toUInt16(exec, value, NormalConversion);
+ if (exec->hadException())
+ return NodeFilter::FILTER_REJECT;
+
return result;
}
diff --git a/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.h b/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.h
index 3be1563..6c37761 100644
--- a/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.h
+++ b/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.h
@@ -43,7 +43,7 @@
return adoptRef(*new ObjCNodeFilterCondition(filter));
}
- virtual short acceptNode(JSC::ExecState*, Node*) const;
+ virtual short acceptNode(Node*) const;
private:
ObjCNodeFilterCondition(id <DOMNodeFilter> filter)
diff --git a/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.mm b/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.mm
index 24b5192..984a1aa 100644
--- a/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.mm
+++ b/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.mm
@@ -37,7 +37,7 @@
namespace WebCore {
-short ObjCNodeFilterCondition::acceptNode(ExecState*, Node* node) const
+short ObjCNodeFilterCondition::acceptNode(Node* node) const
{
if (!node)
return NodeFilter::FILTER_REJECT;
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm b/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm
index be5d065..95fc101 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm
@@ -305,7 +305,7 @@
# sequence<T> parameters, because this code generator doesn't know how to auto-generate
# MediaQueryListListener or sequence<T>. Skip EventListeners because they are handled elsewhere.
foreach my $param (@{$function->parameters}) {
- if ($codeGenerator->IsCallbackInterface($param->type) ||
+ if ($codeGenerator->IsFunctionOnlyCallbackInterface($param->type) ||
$param->extendedAttributes->{"Clamp"} ||
$param->type eq "MediaQueryListListener" ||
$param->type eq "EventListener" ||
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
index e9e7450..bf134b3 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -191,6 +191,13 @@
return "JS$className";
}
+sub GetJSCallbackDataType
+{
+ my $callbackInterface = shift;
+
+ return $callbackInterface->extendedAttributes->{"IsWeakCallback"} ? "JSCallbackDataWeak" : "JSCallbackDataStrong";
+}
+
sub AddIncludesForTypeInImpl
{
my $type = shift;
@@ -3475,6 +3482,8 @@
# Destructor
push(@headerContent, " virtual ~$className();\n");
+ push(@headerContent, " " . GetJSCallbackDataType($interface) . "* callbackData() { return m_data; }\n");
+
# Constructor object getter.
if (@{$interface->constants}) {
push(@headerContent, " static JSC::JSValue getConstructor(JSC::VM&, JSC::JSGlobalObject*);\n");
@@ -3513,9 +3522,13 @@
push(@headerContent, " $className(JSC::JSObject* callback, JSDOMGlobalObject*);\n\n");
# Private members
- push(@headerContent, " JSCallbackData* m_data;\n");
+ push(@headerContent, " " . GetJSCallbackDataType($interface) . "* m_data;\n");
push(@headerContent, "};\n\n");
+ # toJS().
+ push(@headerContent, "JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, $interfaceName*);\n");
+ push(@headerContent, "inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, $interfaceName& impl) { return toJS(exec, globalObject, &impl); }\n\n");
+
push(@headerContent, "} // namespace WebCore\n\n");
my $conditionalString = $codeGenerator->GenerateConditionalString($interface);
push(@headerContent, "#endif // ${conditionalString}\n\n") if $conditionalString;
@@ -3549,7 +3562,7 @@
push(@implContent, " : ${interfaceName}()\n");
}
push(@implContent, " , ActiveDOMCallback(globalObject->scriptExecutionContext())\n");
- push(@implContent, " , m_data(new JSCallbackData(callback, globalObject))\n");
+ push(@implContent, " , m_data(new " . GetJSCallbackDataType($interface) . "(callback, this))\n");
push(@implContent, "{\n");
push(@implContent, "}\n\n");
@@ -3564,7 +3577,7 @@
push(@implContent, " else\n");
push(@implContent, " context->postTask(DeleteCallbackDataTask(m_data));\n");
push(@implContent, "#ifndef NDEBUG\n");
- push(@implContent, " m_data = 0;\n");
+ push(@implContent, " m_data = nullptr;\n");
push(@implContent, "#endif\n");
push(@implContent, "}\n\n");
@@ -3689,6 +3702,14 @@
}
}
+ # toJS() implementation.
+ push(@implContent, "\nJSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, $interfaceName* impl)\n");
+ push(@implContent, "{\n");
+ push(@implContent, " if (!impl || !static_cast<${className}&>(*impl).callbackData())\n");
+ push(@implContent, " return jsNull();\n\n");
+ push(@implContent, " return static_cast<${className}&>(*impl).callbackData()->callback();\n\n");
+ push(@implContent, "}\n");
+
push(@implContent, "\n}\n");
my $conditionalString = $codeGenerator->GenerateConditionalString($interface);
push(@implContent, "\n#endif // ${conditionalString}\n") if $conditionalString;
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm b/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm
index c5b8779..635d133 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm
@@ -420,6 +420,7 @@
{
my $name = shift;
+ return "NativeNodeFilter" if $name eq "NodeFilter";
return "DOMWindow" if $name eq "AbstractView";
return $name;
}
@@ -693,7 +694,7 @@
}
if ($type eq "NodeFilter") {
- $implIncludes{"NodeFilter.h"} = 1;
+ $implIncludes{"NativeNodeFilter.h"} = 1;
$implIncludes{"ObjCNodeFilterCondition.h"} = 1;
return;
}
@@ -1557,7 +1558,7 @@
my $paramName = $needsCustom{"NodeFilter"};
push(@functionContent, " RefPtr<WebCore::NodeFilter> nativeNodeFilter;\n");
push(@functionContent, " if ($paramName)\n");
- push(@functionContent, " nativeNodeFilter = WebCore::NodeFilter::create(WebCore::ObjCNodeFilterCondition::create($paramName));\n");
+ push(@functionContent, " nativeNodeFilter = WebCore::NativeNodeFilter::create(WebCore::ObjCNodeFilterCondition::create($paramName));\n");
}
push(@parameterNames, "ec") if $raisesExceptions;
diff --git a/Source/WebCore/bindings/scripts/IDLAttributes.txt b/Source/WebCore/bindings/scripts/IDLAttributes.txt
index 16b4a19..e812da3 100644
--- a/Source/WebCore/bindings/scripts/IDLAttributes.txt
+++ b/Source/WebCore/bindings/scripts/IDLAttributes.txt
@@ -73,6 +73,7 @@
InitializedByEventConstructor
InterfaceName=*
IsIndex
+IsWeakCallback
JSCustomDefineOwnProperty
JSCustomDefineOwnPropertyOnPrototype
JSCustomFinalize
diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp b/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp
index 4871558..9189b25 100644
--- a/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp
+++ b/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp
@@ -41,7 +41,7 @@
JSTestCallback::JSTestCallback(JSObject* callback, JSDOMGlobalObject* globalObject)
: TestCallback()
, ActiveDOMCallback(globalObject->scriptExecutionContext())
- , m_data(new JSCallbackData(callback, globalObject))
+ , m_data(new JSCallbackDataStrong(callback, this))
{
}
@@ -55,7 +55,7 @@
else
context->postTask(DeleteCallbackDataTask(m_data));
#ifndef NDEBUG
- m_data = 0;
+ m_data = nullptr;
#endif
}
@@ -238,6 +238,15 @@
return !returnedException;
}
+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCallback* impl)
+{
+ if (!impl || !static_cast<JSTestCallback&>(*impl).callbackData())
+ return jsNull();
+
+ return static_cast<JSTestCallback&>(*impl).callbackData()->callback();
+
+}
+
}
#endif // ENABLE(SPEECH_SYNTHESIS)
diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h b/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h
index a22b70b..02a5f74 100644
--- a/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h
+++ b/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h
@@ -40,6 +40,7 @@
virtual ScriptExecutionContext* scriptExecutionContext() const { return ContextDestructionObserver::scriptExecutionContext(); }
virtual ~JSTestCallback();
+ JSCallbackDataStrong* callbackData() { return m_data; }
static JSC::JSValue getConstructor(JSC::VM&, JSC::JSGlobalObject*);
// Functions
@@ -55,9 +56,12 @@
private:
JSTestCallback(JSC::JSObject* callback, JSDOMGlobalObject*);
- JSCallbackData* m_data;
+ JSCallbackDataStrong* m_data;
};
+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCallback*);
+inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, TestCallback& impl) { return toJS(exec, globalObject, &impl); }
+
} // namespace WebCore
#endif // ENABLE(SPEECH_SYNTHESIS)
diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp b/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp
index 0c45c3f..1b144a7 100644
--- a/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp
+++ b/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp
@@ -41,7 +41,7 @@
JSTestCallbackFunction::JSTestCallbackFunction(JSObject* callback, JSDOMGlobalObject* globalObject)
: TestCallbackFunction()
, ActiveDOMCallback(globalObject->scriptExecutionContext())
- , m_data(new JSCallbackData(callback, globalObject))
+ , m_data(new JSCallbackDataStrong(callback, this))
{
}
@@ -55,7 +55,7 @@
else
context->postTask(DeleteCallbackDataTask(m_data));
#ifndef NDEBUG
- m_data = 0;
+ m_data = nullptr;
#endif
}
@@ -189,6 +189,15 @@
return !returnedException;
}
+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCallbackFunction* impl)
+{
+ if (!impl || !static_cast<JSTestCallbackFunction&>(*impl).callbackData())
+ return jsNull();
+
+ return static_cast<JSTestCallbackFunction&>(*impl).callbackData()->callback();
+
+}
+
}
#endif // ENABLE(SPEECH_SYNTHESIS)
diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h b/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h
index 3fe3f20..134257da 100644
--- a/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h
+++ b/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h
@@ -40,6 +40,7 @@
virtual ScriptExecutionContext* scriptExecutionContext() const { return ContextDestructionObserver::scriptExecutionContext(); }
virtual ~JSTestCallbackFunction();
+ JSCallbackDataStrong* callbackData() { return m_data; }
// Functions
virtual bool callbackWithNoParam();
@@ -54,9 +55,12 @@
private:
JSTestCallbackFunction(JSC::JSObject* callback, JSDOMGlobalObject*);
- JSCallbackData* m_data;
+ JSCallbackDataStrong* m_data;
};
+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCallbackFunction*);
+inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, TestCallbackFunction& impl) { return toJS(exec, globalObject, &impl); }
+
} // namespace WebCore
#endif // ENABLE(SPEECH_SYNTHESIS)
diff --git a/Source/WebCore/dom/DOMAllInOne.cpp b/Source/WebCore/dom/DOMAllInOne.cpp
index 3087946..dccf0b8 100644
--- a/Source/WebCore/dom/DOMAllInOne.cpp
+++ b/Source/WebCore/dom/DOMAllInOne.cpp
@@ -108,7 +108,6 @@
#include "NamedFlowCollection.cpp"
#include "NamedNodeMap.cpp"
#include "Node.cpp"
-#include "NodeFilter.cpp"
#include "NodeFilterCondition.cpp"
#include "NodeIterator.cpp"
#include "NodeOrString.cpp"
diff --git a/Source/WebCore/dom/NativeNodeFilter.cpp b/Source/WebCore/dom/NativeNodeFilter.cpp
new file mode 100644
index 0000000..a0a34c9
--- /dev/null
+++ b/Source/WebCore/dom/NativeNodeFilter.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "NativeNodeFilter.h"
+
+namespace WebCore {
+
+NativeNodeFilter::NativeNodeFilter(RefPtr<NodeFilterCondition>&& condition)
+ : m_condition(condition)
+{ }
+
+uint16_t NativeNodeFilter::acceptNode(Node* node)
+{
+ // cast to short silences "enumeral and non-enumeral types in return" warning
+ return m_condition ? m_condition->acceptNode(node) : static_cast<uint16_t>(FILTER_ACCEPT);
+}
+
+} // namespace WebCore
diff --git a/Source/WebCore/dom/NativeNodeFilter.h b/Source/WebCore/dom/NativeNodeFilter.h
new file mode 100644
index 0000000..7b078ea
--- /dev/null
+++ b/Source/WebCore/dom/NativeNodeFilter.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef NativeNodeFilter_h
+#define NativeNodeFilter_h
+
+#include "NodeFilter.h"
+#include "NodeFilterCondition.h"
+
+namespace WebCore {
+
+class NativeNodeFilter final : public NodeFilter {
+public:
+ static Ref<NativeNodeFilter> create(RefPtr<NodeFilterCondition>&& condition)
+ {
+ return adoptRef(*new NativeNodeFilter(WTF::move(condition)));
+ }
+
+ static Ref<NativeNodeFilter> create()
+ {
+ return adoptRef(*new NativeNodeFilter());
+ }
+
+ virtual uint16_t acceptNode(Node*) override;
+
+ void setCondition(RefPtr<NodeFilterCondition>&& condition) { ASSERT(!m_condition); m_condition = condition; }
+
+private:
+ explicit NativeNodeFilter(RefPtr<NodeFilterCondition>&&);
+
+ NativeNodeFilter() { }
+
+ RefPtr<NodeFilterCondition> m_condition;
+};
+
+} // namespace WebCore
+
+#endif // NativeNodeFilter_h
+
diff --git a/Source/WebCore/dom/NodeFilter.cpp b/Source/WebCore/dom/NodeFilter.cpp
deleted file mode 100644
index 8dabc54..0000000
--- a/Source/WebCore/dom/NodeFilter.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2000 Frederik Holljen (frederik.holljen@hig.no)
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
- * Copyright (C) 2004, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "config.h"
-#include "NodeFilter.h"
-
-#include "Node.h"
-
-namespace WebCore {
-
-short NodeFilter::acceptNode(JSC::ExecState* state, Node* node) const
-{
- // cast to short silences "enumeral and non-enumeral types in return" warning
- return m_condition ? m_condition->acceptNode(state, node) : static_cast<short>(FILTER_ACCEPT);
-}
-
-} // namespace WebCore
diff --git a/Source/WebCore/dom/NodeFilter.h b/Source/WebCore/dom/NodeFilter.h
index 57c955a..061129a 100644
--- a/Source/WebCore/dom/NodeFilter.h
+++ b/Source/WebCore/dom/NodeFilter.h
@@ -3,7 +3,7 @@
* Copyright (C) 2000 Frederik Holljen (frederik.holljen@hig.no)
* Copyright (C) 2001 Peter Kelly (pmk@post.com)
* Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
- * Copyright (C) 2004, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2004, 2008, 2009, 2015 Apple Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -25,71 +25,51 @@
#ifndef NodeFilter_h
#define NodeFilter_h
-#include "DOMWrapperWorld.h"
-#include "NodeFilterCondition.h"
+#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
namespace WebCore {
- class NodeFilter : public RefCounted<NodeFilter> {
- public:
- /**
- * The following constants are returned by the acceptNode()
- * method:
- */
- enum {
- FILTER_ACCEPT = 1,
- FILTER_REJECT = 2,
- FILTER_SKIP = 3
- };
+class Node;
- /**
- * These are the available values for the whatToShow parameter.
- * They are the same as the set of possible types for Node, and
- * their values are derived by using a bit position corresponding
- * to the value of NodeType for the equivalent node type.
- */
- enum : unsigned long {
- SHOW_ALL = 0xFFFFFFFF,
- SHOW_ELEMENT = 0x00000001,
- SHOW_ATTRIBUTE = 0x00000002,
- SHOW_TEXT = 0x00000004,
- SHOW_CDATA_SECTION = 0x00000008,
- SHOW_ENTITY_REFERENCE = 0x00000010,
- SHOW_ENTITY = 0x00000020,
- SHOW_PROCESSING_INSTRUCTION = 0x00000040,
- SHOW_COMMENT = 0x00000080,
- SHOW_DOCUMENT = 0x00000100,
- SHOW_DOCUMENT_TYPE = 0x00000200,
- SHOW_DOCUMENT_FRAGMENT = 0x00000400,
- SHOW_NOTATION = 0x00000800
- };
+class NodeFilter : public RefCounted<NodeFilter> {
+public:
+ virtual ~NodeFilter() { }
+ virtual uint16_t acceptNode(Node*) = 0;
- static Ref<NodeFilter> create(PassRefPtr<NodeFilterCondition> condition)
- {
- return adoptRef(*new NodeFilter(condition));
- }
-
- static Ref<NodeFilter> create()
- {
- return adoptRef(*new NodeFilter());
- }
-
- short acceptNode(JSC::ExecState*, Node*) const;
-
- // Do not call these functions. They are just scaffolding to support the Objective-C bindings.
- // They operate in the main thread normal world, and they swallow JS exceptions.
- short acceptNode(Node* node) const { return acceptNode(execStateFromNode(mainThreadNormalWorld(), node), node); }
-
- void setCondition(PassRefPtr<NodeFilterCondition> condition) { ASSERT(!m_condition); m_condition = condition; }
-
- private:
- explicit NodeFilter(PassRefPtr<NodeFilterCondition> condition) : m_condition(condition) { }
- NodeFilter() {}
-
- RefPtr<NodeFilterCondition> m_condition;
+ /*
+ * The following constants are returned by the acceptNode()
+ * method:
+ */
+ enum {
+ FILTER_ACCEPT = 1,
+ FILTER_REJECT = 2,
+ FILTER_SKIP = 3
};
+ /*
+ * These are the available values for the whatToShow parameter.
+ * They are the same as the set of possible types for Node, and
+ * their values are derived by using a bit position corresponding
+ * to the value of NodeType for the equivalent node type.
+ */
+ enum : unsigned long {
+ SHOW_ALL = 0xFFFFFFFF,
+ SHOW_ELEMENT = 0x00000001,
+ SHOW_ATTRIBUTE = 0x00000002,
+ SHOW_TEXT = 0x00000004,
+ SHOW_CDATA_SECTION = 0x00000008,
+ SHOW_ENTITY_REFERENCE = 0x00000010,
+ SHOW_ENTITY = 0x00000020,
+ SHOW_PROCESSING_INSTRUCTION = 0x00000040,
+ SHOW_COMMENT = 0x00000080,
+ SHOW_DOCUMENT = 0x00000100,
+ SHOW_DOCUMENT_TYPE = 0x00000200,
+ SHOW_DOCUMENT_FRAGMENT = 0x00000400,
+ SHOW_NOTATION = 0x00000800
+ };
+};
+
} // namespace WebCore
#endif // NodeFilter_h
diff --git a/Source/WebCore/dom/NodeFilter.idl b/Source/WebCore/dom/NodeFilter.idl
index deee0ab..7ed0dd1 100644
--- a/Source/WebCore/dom/NodeFilter.idl
+++ b/Source/WebCore/dom/NodeFilter.idl
@@ -20,16 +20,13 @@
// Introduced in DOM Level 2:
[
- JSCustomMarkFunction,
- JSCustomToNativeObject,
ObjCProtocol,
- CPPPureInterface,
- ImplementationLacksVTable,
-] interface NodeFilter {
+ IsWeakCallback,
+] callback interface NodeFilter {
// Constants returned by acceptNode
- const short FILTER_ACCEPT = 1;
- const short FILTER_REJECT = 2;
- const short FILTER_SKIP = 3;
+ const unsigned short FILTER_ACCEPT = 1;
+ const unsigned short FILTER_REJECT = 2;
+ const unsigned short FILTER_SKIP = 3;
// Constants for whatToShow
const unsigned long SHOW_ALL = 0xFFFFFFFF;
@@ -46,7 +43,10 @@
const unsigned long SHOW_DOCUMENT_FRAGMENT = 0x00000400;
const unsigned long SHOW_NOTATION = 0x00000800;
- [CallWith=ScriptState] short acceptNode([Default=Undefined] optional Node n);
-
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ short acceptNode([Default=Undefined] optional Node n);
+#else
+ [Custom] unsigned short acceptNode([Default=Undefined] optional Node n);
+#endif
};
diff --git a/Source/WebCore/dom/NodeFilterCondition.cpp b/Source/WebCore/dom/NodeFilterCondition.cpp
index e478d94..72c9ee1 100644
--- a/Source/WebCore/dom/NodeFilterCondition.cpp
+++ b/Source/WebCore/dom/NodeFilterCondition.cpp
@@ -29,7 +29,7 @@
namespace WebCore {
-short NodeFilterCondition::acceptNode(JSC::ExecState*, Node*) const
+short NodeFilterCondition::acceptNode(Node*) const
{
return NodeFilter::FILTER_ACCEPT;
}
diff --git a/Source/WebCore/dom/NodeFilterCondition.h b/Source/WebCore/dom/NodeFilterCondition.h
index 8ba38f6..2b9ab68 100644
--- a/Source/WebCore/dom/NodeFilterCondition.h
+++ b/Source/WebCore/dom/NodeFilterCondition.h
@@ -41,7 +41,7 @@
class NodeFilterCondition : public RefCounted<NodeFilterCondition> {
public:
virtual ~NodeFilterCondition() { }
- virtual short acceptNode(JSC::ExecState*, Node*) const = 0;
+ virtual short acceptNode(Node*) const = 0;
virtual void visitAggregate(JSC::SlotVisitor&) { }
};
diff --git a/Source/WebCore/dom/NodeIterator.cpp b/Source/WebCore/dom/NodeIterator.cpp
index e436c78..8f29ab01 100644
--- a/Source/WebCore/dom/NodeIterator.cpp
+++ b/Source/WebCore/dom/NodeIterator.cpp
@@ -88,7 +88,7 @@
root()->document().detachNodeIterator(this);
}
-RefPtr<Node> NodeIterator::nextNode(JSC::ExecState* state)
+RefPtr<Node> NodeIterator::nextNode()
{
RefPtr<Node> result;
@@ -98,9 +98,7 @@
// In other words, FILTER_REJECT does not pass over descendants
// of the rejected node. Hence, FILTER_REJECT is the same as FILTER_SKIP.
RefPtr<Node> provisionalResult = m_candidateNode.node;
- bool nodeWasAccepted = acceptNode(state, provisionalResult.get()) == NodeFilter::FILTER_ACCEPT;
- if (state && state->hadException())
- break;
+ bool nodeWasAccepted = acceptNode(provisionalResult.get()) == NodeFilter::FILTER_ACCEPT;
if (nodeWasAccepted) {
m_referenceNode = m_candidateNode;
result = provisionalResult.release();
@@ -112,7 +110,7 @@
return result;
}
-RefPtr<Node> NodeIterator::previousNode(JSC::ExecState* state)
+RefPtr<Node> NodeIterator::previousNode()
{
RefPtr<Node> result;
@@ -122,9 +120,7 @@
// In other words, FILTER_REJECT does not pass over descendants
// of the rejected node. Hence, FILTER_REJECT is the same as FILTER_SKIP.
RefPtr<Node> provisionalResult = m_candidateNode.node;
- bool nodeWasAccepted = acceptNode(state, provisionalResult.get()) == NodeFilter::FILTER_ACCEPT;
- if (state && state->hadException())
- break;
+ bool nodeWasAccepted = acceptNode(provisionalResult.get()) == NodeFilter::FILTER_ACCEPT;
if (nodeWasAccepted) {
m_referenceNode = m_candidateNode;
result = provisionalResult.release();
diff --git a/Source/WebCore/dom/NodeIterator.h b/Source/WebCore/dom/NodeIterator.h
index 0b9fbdc..49766ad 100644
--- a/Source/WebCore/dom/NodeIterator.h
+++ b/Source/WebCore/dom/NodeIterator.h
@@ -43,8 +43,8 @@
}
~NodeIterator();
- RefPtr<Node> nextNode(JSC::ExecState*);
- RefPtr<Node> previousNode(JSC::ExecState*);
+ RefPtr<Node> nextNode();
+ RefPtr<Node> previousNode();
void detach();
Node* referenceNode() const { return m_referenceNode.node.get(); }
@@ -53,11 +53,6 @@
// This function is called before any node is removed from the document tree.
void nodeWillBeRemoved(Node&);
- // Do not call these functions. They are just scaffolding to support the Objective-C bindings.
- // They operate in the main thread normal world, and they swallow JS exceptions.
- RefPtr<Node> nextNode() { return nextNode(execStateFromNode(mainThreadNormalWorld(), referenceNode())); }
- RefPtr<Node> previousNode() { return previousNode(execStateFromNode(mainThreadNormalWorld(), referenceNode())); }
-
private:
NodeIterator(PassRefPtr<Node>, unsigned long whatToShow, PassRefPtr<NodeFilter>, bool expandEntityReferences);
diff --git a/Source/WebCore/dom/NodeIterator.idl b/Source/WebCore/dom/NodeIterator.idl
index c0ea6c8..12025de 100644
--- a/Source/WebCore/dom/NodeIterator.idl
+++ b/Source/WebCore/dom/NodeIterator.idl
@@ -30,8 +30,8 @@
readonly attribute Node referenceNode;
readonly attribute boolean pointerBeforeReferenceNode;
- [CallWith=ScriptState] Node nextNode();
- [CallWith=ScriptState] Node previousNode();
+ Node nextNode();
+ Node previousNode();
void detach();
};
diff --git a/Source/WebCore/dom/Traversal.cpp b/Source/WebCore/dom/Traversal.cpp
index 1c22705..763f141 100644
--- a/Source/WebCore/dom/Traversal.cpp
+++ b/Source/WebCore/dom/Traversal.cpp
@@ -38,7 +38,7 @@
{
}
-short NodeIteratorBase::acceptNode(JSC::ExecState* state, Node* node) const
+short NodeIteratorBase::acceptNode(Node* node) const
{
// FIXME: To handle XML properly we would have to check m_expandEntityReferences.
@@ -48,7 +48,7 @@
return NodeFilter::FILTER_SKIP;
if (!m_filter)
return NodeFilter::FILTER_ACCEPT;
- return m_filter->acceptNode(state, node);
+ return m_filter->acceptNode(node);
}
} // namespace WebCore
diff --git a/Source/WebCore/dom/Traversal.h b/Source/WebCore/dom/Traversal.h
index 15f09e2..6acfbdb 100644
--- a/Source/WebCore/dom/Traversal.h
+++ b/Source/WebCore/dom/Traversal.h
@@ -42,7 +42,7 @@
protected:
NodeIteratorBase(PassRefPtr<Node>, unsigned long whatToShow, PassRefPtr<NodeFilter>, bool expandEntityReferences);
- short acceptNode(JSC::ExecState*, Node*) const;
+ short acceptNode(Node*) const;
private:
RefPtr<Node> m_root;
diff --git a/Source/WebCore/dom/TreeWalker.cpp b/Source/WebCore/dom/TreeWalker.cpp
index df034b1..0583620 100644
--- a/Source/WebCore/dom/TreeWalker.cpp
+++ b/Source/WebCore/dom/TreeWalker.cpp
@@ -54,28 +54,24 @@
return m_current.get();
}
-Node* TreeWalker::parentNode(JSC::ExecState* state)
+Node* TreeWalker::parentNode()
{
RefPtr<Node> node = m_current;
while (node != root()) {
node = node->parentNode();
if (!node)
- return 0;
- short acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return 0;
+ return nullptr;
+ short acceptNodeResult = acceptNode(node.get());
if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
return setCurrent(node.release());
}
- return 0;
+ return nullptr;
}
-Node* TreeWalker::firstChild(JSC::ExecState* state)
+Node* TreeWalker::firstChild()
{
for (RefPtr<Node> node = m_current->firstChild(); node; ) {
- short acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return 0;
+ short acceptNodeResult = acceptNode(node.get());
switch (acceptNodeResult) {
case NodeFilter::FILTER_ACCEPT:
m_current = node.release();
@@ -96,19 +92,17 @@
}
ContainerNode* parent = node->parentNode();
if (!parent || parent == root() || parent == m_current)
- return 0;
+ return nullptr;
node = parent;
} while (node);
}
- return 0;
+ return nullptr;
}
-Node* TreeWalker::lastChild(JSC::ExecState* state)
+Node* TreeWalker::lastChild()
{
for (RefPtr<Node> node = m_current->lastChild(); node; ) {
- short acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return 0;
+ short acceptNodeResult = acceptNode(node.get());
switch (acceptNodeResult) {
case NodeFilter::FILTER_ACCEPT:
m_current = node.release();
@@ -129,23 +123,21 @@
}
ContainerNode* parent = node->parentNode();
if (!parent || parent == root() || parent == m_current)
- return 0;
+ return nullptr;
node = parent;
} while (node);
}
- return 0;
+ return nullptr;
}
-Node* TreeWalker::previousSibling(JSC::ExecState* state)
+Node* TreeWalker::previousSibling()
{
RefPtr<Node> node = m_current;
if (node == root())
- return 0;
+ return nullptr;
while (1) {
for (RefPtr<Node> sibling = node->previousSibling(); sibling; ) {
- short acceptNodeResult = acceptNode(state, sibling.get());
- if (state && state->hadException())
- return 0;
+ short acceptNodeResult = acceptNode(sibling.get());
switch (acceptNodeResult) {
case NodeFilter::FILTER_ACCEPT:
m_current = sibling.release();
@@ -164,25 +156,21 @@
}
node = node->parentNode();
if (!node || node == root())
- return 0;
- short acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return 0;
+ return nullptr;
+ short acceptNodeResult = acceptNode(node.get());
if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
- return 0;
+ return nullptr;
}
}
-Node* TreeWalker::nextSibling(JSC::ExecState* state)
+Node* TreeWalker::nextSibling()
{
RefPtr<Node> node = m_current;
if (node == root())
- return 0;
+ return nullptr;
while (1) {
for (RefPtr<Node> sibling = node->nextSibling(); sibling; ) {
- short acceptNodeResult = acceptNode(state, sibling.get());
- if (state && state->hadException())
- return 0;
+ short acceptNodeResult = acceptNode(sibling.get());
switch (acceptNodeResult) {
case NodeFilter::FILTER_ACCEPT:
m_current = sibling.release();
@@ -201,31 +189,25 @@
}
node = node->parentNode();
if (!node || node == root())
- return 0;
- short acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return 0;
+ return nullptr;
+ short acceptNodeResult = acceptNode(node.get());
if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
- return 0;
+ return nullptr;
}
}
-Node* TreeWalker::previousNode(JSC::ExecState* state)
+Node* TreeWalker::previousNode()
{
RefPtr<Node> node = m_current;
while (node != root()) {
while (Node* previousSibling = node->previousSibling()) {
node = previousSibling;
- short acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return 0;
+ short acceptNodeResult = acceptNode(node.get());
if (acceptNodeResult == NodeFilter::FILTER_REJECT)
continue;
while (Node* lastChild = node->lastChild()) {
node = lastChild;
- acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return 0;
+ acceptNodeResult = acceptNode(node.get());
if (acceptNodeResult == NodeFilter::FILTER_REJECT)
break;
}
@@ -235,29 +217,25 @@
}
}
if (node == root())
- return 0;
+ return nullptr;
ContainerNode* parent = node->parentNode();
if (!parent)
- return 0;
+ return nullptr;
node = parent;
- short acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return 0;
+ short acceptNodeResult = acceptNode(node.get());
if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
return setCurrent(node.release());
}
- return 0;
+ return nullptr;
}
-Node* TreeWalker::nextNode(JSC::ExecState* state)
+Node* TreeWalker::nextNode()
{
RefPtr<Node> node = m_current;
Children:
while (Node* firstChild = node->firstChild()) {
node = firstChild;
- short acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return nullptr;
+ short acceptNodeResult = acceptNode(node.get());
if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
return setCurrent(node.release());
if (acceptNodeResult == NodeFilter::FILTER_REJECT)
@@ -265,9 +243,7 @@
}
while (Node* nextSibling = NodeTraversal::nextSkippingChildren(*node, root())) {
node = nextSibling;
- short acceptNodeResult = acceptNode(state, node.get());
- if (state && state->hadException())
- return nullptr;
+ short acceptNodeResult = acceptNode(node.get());
if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
return setCurrent(node.release());
if (acceptNodeResult == NodeFilter::FILTER_SKIP)
diff --git a/Source/WebCore/dom/TreeWalker.h b/Source/WebCore/dom/TreeWalker.h
index c440c29..6a3fe71 100644
--- a/Source/WebCore/dom/TreeWalker.h
+++ b/Source/WebCore/dom/TreeWalker.h
@@ -45,23 +45,13 @@
Node* currentNode() const { return m_current.get(); }
void setCurrentNode(PassRefPtr<Node>, ExceptionCode&);
- Node* parentNode(JSC::ExecState*);
- Node* firstChild(JSC::ExecState*);
- Node* lastChild(JSC::ExecState*);
- Node* previousSibling(JSC::ExecState*);
- Node* nextSibling(JSC::ExecState*);
- Node* previousNode(JSC::ExecState*);
- Node* nextNode(JSC::ExecState*);
-
- // Do not call these functions. They are just scaffolding to support the Objective-C bindings.
- // They operate in the main thread normal world, and they swallow JS exceptions.
- Node* parentNode() { return parentNode(execStateFromNode(mainThreadNormalWorld(), m_current.get())); }
- Node* firstChild() { return firstChild(execStateFromNode(mainThreadNormalWorld(), m_current.get())); }
- Node* lastChild() { return lastChild(execStateFromNode(mainThreadNormalWorld(), m_current.get())); }
- Node* previousSibling() { return previousSibling(execStateFromNode(mainThreadNormalWorld(), m_current.get())); }
- Node* nextSibling() { return nextSibling(execStateFromNode(mainThreadNormalWorld(), m_current.get())); }
- Node* previousNode() { return previousNode(execStateFromNode(mainThreadNormalWorld(), m_current.get())); }
- Node* nextNode() { return nextNode(execStateFromNode(mainThreadNormalWorld(), m_current.get())); }
+ Node* parentNode();
+ Node* firstChild();
+ Node* lastChild();
+ Node* previousSibling();
+ Node* nextSibling();
+ Node* previousNode();
+ Node* nextNode();
private:
TreeWalker(PassRefPtr<Node>, unsigned long whatToShow, PassRefPtr<NodeFilter>, bool expandEntityReferences);
diff --git a/Source/WebCore/dom/TreeWalker.idl b/Source/WebCore/dom/TreeWalker.idl
index 263aefa..4809ee3 100644
--- a/Source/WebCore/dom/TreeWalker.idl
+++ b/Source/WebCore/dom/TreeWalker.idl
@@ -29,12 +29,12 @@
readonly attribute boolean expandEntityReferences;
[SetterRaisesException] attribute Node currentNode;
- [CallWith=ScriptState] Node parentNode();
- [CallWith=ScriptState] Node firstChild();
- [CallWith=ScriptState] Node lastChild();
- [CallWith=ScriptState] Node previousSibling();
- [CallWith=ScriptState] Node nextSibling();
- [CallWith=ScriptState] Node previousNode();
- [CallWith=ScriptState] Node nextNode();
+ Node parentNode();
+ Node firstChild();
+ Node lastChild();
+ Node previousSibling();
+ Node nextSibling();
+ Node previousNode();
+ Node nextNode();
};