<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[189230] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/189230">189230</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2015-09-01 14:49:44 -0700 (Tue, 01 Sep 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>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
&quot;function() { return NodeFilter.FILTER_ACCEPT; }&quot;, however, I used null as
it is shorter and equivalent.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomTreeWalkeracceptNodefilterexpectedtxt">trunk/LayoutTests/fast/dom/TreeWalker/acceptNode-filter-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomconstantsexpectedtxt">trunk/LayoutTests/fast/dom/constants-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomconstantshtml">trunk/LayoutTests/fast/dom/constants.html</a></li>
<li><a href="#trunkLayoutTestsfastdomglobalconstructorshtml">trunk/LayoutTests/fast/dom/global-constructors.html</a></li>
<li><a href="#trunkLayoutTestsfastdomnodefiltergchtml">trunk/LayoutTests/fast/dom/node-filter-gc.html</a></li>
<li><a href="#trunkLayoutTestsfastdomnodefilterinterfaceexpectedtxt">trunk/LayoutTests/fast/dom/node-filter-interface-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestsw3cdominterfacesexpectedtxt">trunk/LayoutTests/http/tests/w3c/dom/interfaces-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestsw3cdomnodesDocumentcreateTreeWalkerexpectedtxt">trunk/LayoutTests/http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestsw3cdomtraversalNodeIteratorexpectedtxt">trunk/LayoutTests/http/tests/w3c/dom/traversal/NodeIterator-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestsw3cdomtraversalTreeWalkerexpectedtxt">trunk/LayoutTests/http/tests/w3c/dom/traversal/TreeWalker-expected.txt</a></li>
<li><a href="#trunkLayoutTeststraversalsizezerorunhtml">trunk/LayoutTests/traversal/size-zero-run.html</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxproj">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsgobjectGObjectNodeFilterConditioncpp">trunk/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsgobjectGObjectNodeFilterConditionh">trunk/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.h</a></li>
<li><a href="#trunkSourceWebCorebindingsgobjectWebKitDOMNodeFiltercpp">trunk/Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSBindingsAllInOnecpp">trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCallbackDatacpp">trunk/Source/WebCore/bindings/js/JSCallbackData.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCallbackDatah">trunk/Source/WebCore/bindings/js/JSCallbackData.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSNodeFilterCustomcpp">trunk/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsobjcObjCNodeFilterConditionh">trunk/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.h</a></li>
<li><a href="#trunkSourceWebCorebindingsobjcObjCNodeFilterConditionmm">trunk/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.mm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorGObjectpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorObjCpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsIDLAttributestxt">trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallbackcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallbackh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallbackFunctioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallbackFunctionh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h</a></li>
<li><a href="#trunkSourceWebCoredomDOMAllInOnecpp">trunk/Source/WebCore/dom/DOMAllInOne.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeFilterh">trunk/Source/WebCore/dom/NodeFilter.h</a></li>
<li><a href="#trunkSourceWebCoredomNodeFilteridl">trunk/Source/WebCore/dom/NodeFilter.idl</a></li>
<li><a href="#trunkSourceWebCoredomNodeFilterConditioncpp">trunk/Source/WebCore/dom/NodeFilterCondition.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeFilterConditionh">trunk/Source/WebCore/dom/NodeFilterCondition.h</a></li>
<li><a href="#trunkSourceWebCoredomNodeIteratorcpp">trunk/Source/WebCore/dom/NodeIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeIteratorh">trunk/Source/WebCore/dom/NodeIterator.h</a></li>
<li><a href="#trunkSourceWebCoredomNodeIteratoridl">trunk/Source/WebCore/dom/NodeIterator.idl</a></li>
<li><a href="#trunkSourceWebCoredomTraversalcpp">trunk/Source/WebCore/dom/Traversal.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTraversalh">trunk/Source/WebCore/dom/Traversal.h</a></li>
<li><a href="#trunkSourceWebCoredomTreeWalkercpp">trunk/Source/WebCore/dom/TreeWalker.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTreeWalkerh">trunk/Source/WebCore/dom/TreeWalker.h</a></li>
<li><a href="#trunkSourceWebCoredomTreeWalkeridl">trunk/Source/WebCore/dom/TreeWalker.idl</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoredomNativeNodeFiltercpp">trunk/Source/WebCore/dom/NativeNodeFilter.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNativeNodeFilterh">trunk/Source/WebCore/dom/NativeNodeFilter.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorebindingsjsJSNodeFilterConditioncpp">trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSNodeFilterConditionh">trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.h</a></li>
<li><a href="#trunkSourceWebCoredomNodeFiltercpp">trunk/Source/WebCore/dom/NodeFilter.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/ChangeLog        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1,3 +1,52 @@
</span><ins>+2015-09-01  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        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
+        &quot;function() { return NodeFilter.FILTER_ACCEPT; }&quot;, however, I used null as
+        it is shorter and equivalent.
+
</ins><span class="cx"> 2015-09-01  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Add tests for computed method declarations with side effects
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomTreeWalkeracceptNodefilterexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/TreeWalker/acceptNode-filter-expected.txt (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/TreeWalker/acceptNode-filter-expected.txt        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/fast/dom/TreeWalker/acceptNode-filter-expected.txt        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -26,15 +26,15 @@
</span><span class="cx"> PASS walker.nextNode(); walker.currentNode.id is 'B1'
</span><span class="cx"> 
</span><span class="cx"> Testing with object lacking acceptNode property
</span><del>-PASS walker.firstChild(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
</del><ins>+PASS walker.firstChild(); threw exception TypeError: Type error.
</ins><span class="cx"> PASS walker.currentNode.id; is 'root'
</span><del>-PASS walker.nextNode(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
</del><ins>+PASS walker.nextNode(); threw exception TypeError: Type error.
</ins><span class="cx"> PASS walker.currentNode.id; is 'root'
</span><span class="cx"> 
</span><span class="cx"> Testing with object with non-function acceptNode property
</span><del>-PASS walker.firstChild(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
</del><ins>+PASS walker.firstChild(); threw exception TypeError: Type error.
</ins><span class="cx"> PASS walker.currentNode.id; is 'root'
</span><del>-PASS walker.nextNode(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
</del><ins>+PASS walker.nextNode(); threw exception TypeError: Type error.
</ins><span class="cx"> PASS walker.currentNode.id; is 'root'
</span><span class="cx"> 
</span><span class="cx"> Testing with function having acceptNode function
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomconstantsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/constants-expected.txt (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/constants-expected.txt        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/fast/dom/constants-expected.txt        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -24,22 +24,6 @@
</span><span class="cx"> PASS: window.CSSValue.CSS_PRIMITIVE_VALUE should be 1 and is.
</span><span class="cx"> PASS: window.CSSValue.CSS_VALUE_LIST should be 2 and is.
</span><span class="cx"> PASS: window.CSSValue.CSS_CUSTOM should be 3 and is.
</span><del>-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.
</del><span class="cx"> PASS: window.NodeFilter.FILTER_ACCEPT should be 1 and is.
</span><span class="cx"> PASS: window.NodeFilter.FILTER_REJECT should be 2 and is.
</span><span class="cx"> PASS: window.NodeFilter.FILTER_SKIP should be 3 and is.
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomconstantshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/constants.html (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/constants.html        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/fast/dom/constants.html        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx">     print(message, color);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-var cssRule, cssValue, nodeFilter, event;
</del><ins>+var cssRule, cssValue, event;
</ins><span class="cx"> 
</span><span class="cx"> function test() {
</span><span class="cx">     if (window.testRunner)
</span><span class="lines">@@ -66,34 +66,6 @@
</span><span class="cx">     shouldBe(&quot;window.CSSValue.CSS_VALUE_LIST&quot;, 2);
</span><span class="cx">     shouldBe(&quot;window.CSSValue.CSS_CUSTOM&quot;, 3);
</span><span class="cx"> 
</span><del>-    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(&quot;nodeFilter.FILTER_ACCEPT&quot;, 1);
-    shouldBe(&quot;nodeFilter.FILTER_REJECT&quot;, 2);
-    shouldBe(&quot;nodeFilter.FILTER_SKIP&quot;, 3);
-    shouldBe(&quot;nodeFilter.SHOW_ALL&quot;, 0xFFFFFFFF);
-    shouldBe(&quot;nodeFilter.SHOW_ELEMENT&quot;, 0x00000001);
-    shouldBe(&quot;nodeFilter.SHOW_ATTRIBUTE&quot;, 0x00000002);
-    shouldBe(&quot;nodeFilter.SHOW_TEXT&quot;, 0x00000004);
-    shouldBe(&quot;nodeFilter.SHOW_CDATA_SECTION&quot;, 0x00000008);
-    shouldBe(&quot;nodeFilter.SHOW_ENTITY_REFERENCE&quot;, 0x00000010);
-    shouldBe(&quot;nodeFilter.SHOW_ENTITY&quot;, 0x00000020);
-    shouldBe(&quot;nodeFilter.SHOW_PROCESSING_INSTRUCTION&quot;, 0x00000040);
-    shouldBe(&quot;nodeFilter.SHOW_COMMENT&quot;, 0x00000080);
-    shouldBe(&quot;nodeFilter.SHOW_DOCUMENT&quot;, 0x00000100);
-    shouldBe(&quot;nodeFilter.SHOW_DOCUMENT_TYPE&quot;, 0x00000200);
-    shouldBe(&quot;nodeFilter.SHOW_DOCUMENT_FRAGMENT&quot;, 0x00000400);
-    shouldBe(&quot;nodeFilter.SHOW_NOTATION&quot;, 0x00000800);
-
</del><span class="cx">     shouldBe(&quot;window.NodeFilter.FILTER_ACCEPT&quot;, 1);
</span><span class="cx">     shouldBe(&quot;window.NodeFilter.FILTER_REJECT&quot;, 2);
</span><span class="cx">     shouldBe(&quot;window.NodeFilter.FILTER_SKIP&quot;, 3);
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomglobalconstructorshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/global-constructors.html (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/global-constructors.html        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/fast/dom/global-constructors.html        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx">     try {
</span><span class="cx">       nodeFilter = document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, function () {}, false).filter;
</span><span class="cx">     } catch(e) {}
</span><del>-    shouldBe(&quot;window.NodeFilter.prototype.isPrototypeOf(nodeFilter)&quot;, true);
</del><ins>+    shouldBe(&quot;Function.prototype.isPrototypeOf(nodeFilter)&quot;, true);
</ins><span class="cx"> 
</span><span class="cx">     originalNodePrototype = window.Node.prototype;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomnodefiltergchtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/node-filter-gc.html (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/node-filter-gc.html        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/fast/dom/node-filter-gc.html        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -3,8 +3,8 @@
</span><span class="cx"> if (window.testRunner)
</span><span class="cx">     testRunner.dumpAsText();
</span><span class="cx">     
</span><del>-var iterator = document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, 0, false);
-var walker = document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, 0, false);
</del><ins>+var iterator = document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, null, false);
+var walker = document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, null, false);
</ins><span class="cx"> 
</span><span class="cx"> // create lots of objects to force a garbage collection
</span><span class="cx">  var i = 0;
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomnodefilterinterfaceexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/node-filter-interface-expected.txt (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/node-filter-interface-expected.txt        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/fast/dom/node-filter-interface-expected.txt        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -39,8 +39,6 @@
</span><span class="cx"> [Configurable: true, enumerable: false, writable: false, value: 0]
</span><span class="cx"> * name
</span><span class="cx"> [Configurable: true, enumerable: false, writable: false, value: NodeFilter]
</span><del>-* prototype
-[Configurable: false, enumerable: false, writable: false, value: [object NodeFilterPrototype]]
</del><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsw3cdominterfacesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/w3c/dom/interfaces-expected.txt (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/w3c/dom/interfaces-expected.txt        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/http/tests/w3c/dom/interfaces-expected.txt        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1890,41 +1890,41 @@
</span><span class="cx"> PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;previousNode&quot; with the proper type (9) 
</span><span class="cx"> PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;nextNode&quot; with the proper type (10) 
</span><span class="cx"> PASS NodeFilter interface: existence and properties of interface object 
</span><del>-FAIL NodeFilter interface: existence and properties of interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
-FAIL NodeFilter interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: existence and properties of interface prototype object 
+PASS NodeFilter interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
</ins><span class="cx"> PASS NodeFilter interface: constant FILTER_ACCEPT on interface object 
</span><del>-FAIL NodeFilter interface: constant FILTER_ACCEPT on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant FILTER_ACCEPT on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant FILTER_REJECT on interface object 
</span><del>-FAIL NodeFilter interface: constant FILTER_REJECT on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant FILTER_REJECT on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant FILTER_SKIP on interface object 
</span><del>-FAIL NodeFilter interface: constant FILTER_SKIP on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant FILTER_SKIP on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_ALL on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_ALL on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_ALL on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_ELEMENT on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_ELEMENT on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_ELEMENT on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_ATTRIBUTE on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_TEXT on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_TEXT on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_TEXT on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_CDATA_SECTION on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_ENTITY on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_ENTITY on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_ENTITY on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_COMMENT on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_COMMENT on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_COMMENT on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_DOCUMENT on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_DOCUMENT on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_DOCUMENT on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototype object 
</ins><span class="cx"> PASS NodeFilter interface: constant SHOW_NOTATION on interface object 
</span><del>-FAIL NodeFilter interface: constant SHOW_NOTATION on interface prototype object assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
-FAIL NodeFilter interface: operation acceptNode(Node) assert_false: NodeFilter should not have a &quot;prototype&quot; property expected false got true
</del><ins>+PASS NodeFilter interface: constant SHOW_NOTATION on interface prototype object 
+PASS NodeFilter interface: operation acceptNode(Node) 
</ins><span class="cx"> FAIL DOMTokenList interface: existence and properties of interface object assert_equals: class string of DOMTokenList expected &quot;[object Function]&quot; but got &quot;[object DOMTokenListConstructor]&quot;
</span><span class="cx"> PASS DOMTokenList interface object length 
</span><span class="cx"> PASS DOMTokenList interface: existence and properties of interface prototype object 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsw3cdomnodesDocumentcreateTreeWalkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/http/tests/w3c/dom/nodes/Document-createTreeWalker-expected.txt        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -3,5 +3,5 @@
</span><span class="cx"> PASS Optional arguments to createTreeWalker should be optional (1 passed). 
</span><span class="cx"> PASS Optional arguments to createTreeWalker should be optional (2 passed). 
</span><span class="cx"> PASS Optional arguments to createTreeWalker should be optional (3 passed, null). 
</span><del>-FAIL Optional arguments to createTreeWalker should be optional (3 passed, function). assert_equals: expected (function) function &quot;function () {}&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+PASS Optional arguments to createTreeWalker should be optional (3 passed, function). 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsw3cdomtraversalNodeIteratorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/w3c/dom/traversal/NodeIterator-expected.txt (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/w3c/dom/traversal/NodeIterator-expected.txt        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/http/tests/w3c/dom/traversal/NodeIterator-expected.txt        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -5,743 +5,743 @@
</span><span class="cx"> FAIL createNodeIterator() with undefined as arguments assert_equals: whatToShow expected 4294967295 but got 0
</span><span class="cx"> PASS Propagate exception from filter function 
</span><span class="cx"> PASS document.createNodeIterator(paras[0], 0, null) 
</span><del>-FAIL document.createNodeIterator(paras[0], 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[0], 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(paras[0], 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[0].firstChild, 0, null) 
</span><del>-FAIL document.createNodeIterator(paras[0].firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1].firstChild, 0, null) 
</span><del>-FAIL document.createNodeIterator(paras[1].firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1, 0, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1.firstChild, 0, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1.firstChild, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(document, 0, null) 
</span><del>-FAIL document.createNodeIterator(document, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(document, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(document, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedDiv, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedDiv, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedDiv, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedDiv, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoc, 0, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoc, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoc, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoc, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara2, 0, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara2, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara2, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara2, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoc, 0, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoc, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoc, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoc, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlElement, 0, null) 
</span><del>-FAIL document.createNodeIterator(xmlElement, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlElement, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(xmlElement, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedTextNode, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignTextNode, 0, null) 
</span><del>-FAIL document.createNodeIterator(foreignTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(processingInstruction, 0, null) 
</span><del>-FAIL document.createNodeIterator(processingInstruction, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(processingInstruction, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(processingInstruction, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedProcessingInstruction, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedProcessingInstruction, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(comment, 0, null) 
</span><del>-FAIL document.createNodeIterator(comment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(comment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(comment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedComment, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(docfrag, 0, null) 
</span><del>-FAIL document.createNodeIterator(docfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(docfrag, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(docfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(doctype, 0, null) 
</span><del>-FAIL document.createNodeIterator(doctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(doctype, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(doctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoctype, 0, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1], 0, null) 
</span><del>-FAIL document.createNodeIterator(paras[1], 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1], 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(paras[1], 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2.firstChild, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(testDiv, 0, null) 
</span><del>-FAIL document.createNodeIterator(testDiv, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(testDiv, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(testDiv, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlElement, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlElement, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignTextNode, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlTextNode, 0, null) 
</span><del>-FAIL document.createNodeIterator(xmlTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlTextNode, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlComment, 0, null) 
</span><del>-FAIL document.createNodeIterator(xmlComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(xmlComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignComment, 0, null) 
</span><del>-FAIL document.createNodeIterator(foreignComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(foreignComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignComment, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlComment, 0, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDocfrag, 0, null) 
</span><del>-FAIL document.createNodeIterator(foreignDocfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDocfrag, 0, null) 
</span><del>-FAIL document.createNodeIterator(xmlDocfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoctype, 0, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createNodeIterator(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsw3cdomtraversalTreeWalkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/w3c/dom/traversal/TreeWalker-expected.txt (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/w3c/dom/traversal/TreeWalker-expected.txt        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/http/tests/w3c/dom/traversal/TreeWalker-expected.txt        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1,742 +1,743 @@
</span><span class="cx"> 
</span><span class="cx"> PASS document.createTreeWalker(paras[0], 0, null) 
</span><del>-FAIL document.createTreeWalker(paras[0], 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[0], 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(paras[0], 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[0].firstChild, 0, null) 
</span><del>-FAIL document.createTreeWalker(paras[0].firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[0].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1].firstChild, 0, null) 
</span><del>-FAIL document.createTreeWalker(paras[1].firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1].firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1, 0, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1.firstChild, 0, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1.firstChild, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara1.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(document, 0, null) 
</span><del>-FAIL document.createTreeWalker(document, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(document, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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 &quot;TreeWalker tests&quot; but got null
</ins><span class="cx"> PASS document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedDiv, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedDiv, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedDiv, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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 &quot;Wxyzabcd&quot; but got null
</ins><span class="cx"> PASS document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoc, 0, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoc, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoc, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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 &quot;Efghijkl&quot; but got Comment node &lt;!--&quot;Commenter&quot; and &quot;commentator&quot; mean different things.  I'v...--&gt;
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara2, 0, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara2, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara2, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara2, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoc, 0, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoc, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoc, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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 &quot;do re mi fa so la ti&quot; but got Comment node &lt;!--I maliciously created a comment that will break incautiou...--&gt;
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoc, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlElement, 0, null) 
</span><del>-FAIL document.createTreeWalker(xmlElement, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlElement, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(xmlElement, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedTextNode, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignTextNode, 0, null) 
</span><del>-FAIL document.createTreeWalker(foreignTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(processingInstruction, 0, null) 
</span><del>-FAIL document.createTreeWalker(processingInstruction, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(processingInstruction, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(processingInstruction, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(processingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedProcessingInstruction, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedProcessingInstruction, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedProcessingInstruction, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(comment, 0, null) 
</span><del>-FAIL document.createTreeWalker(comment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(comment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(comment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(comment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedComment, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(docfrag, 0, null) 
</span><del>-FAIL document.createTreeWalker(docfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(docfrag, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(docfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(docfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(doctype, 0, null) 
</span><del>-FAIL document.createTreeWalker(doctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(doctype, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(doctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(doctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoctype, 0, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1], 0, null) 
</span><del>-FAIL document.createTreeWalker(paras[1], 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1], 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(paras[1], 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(paras[1], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2.firstChild, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2.firstChild, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedPara2.firstChild, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(testDiv, 0, null) 
</span><del>-FAIL document.createTreeWalker(testDiv, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(testDiv, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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 &quot;Ijklmnop
+&quot; but got Comment node &lt;!--Alphabet soup?--&gt;
</ins><span class="cx"> PASS document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(testDiv, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlElement, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlElement, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlElement, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignTextNode, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlTextNode, 0, null) 
</span><del>-FAIL document.createTreeWalker(xmlTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlTextNode, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlTextNode, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlTextNode, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlComment, 0, null) 
</span><del>-FAIL document.createTreeWalker(xmlComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(xmlComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignComment, 0, null) 
</span><del>-FAIL document.createTreeWalker(foreignComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(foreignComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignComment, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedForeignComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlComment, 0, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlComment, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(detachedXmlComment, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDocfrag, 0, null) 
</span><del>-FAIL document.createTreeWalker(foreignDocfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(foreignDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDocfrag, 0, null) 
</span><del>-FAIL document.createTreeWalker(xmlDocfrag, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDocfrag, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoctype, 0, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoctype, 0, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, 0, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, 0, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, 0xFFFFFFFF, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ATTRIBUTE, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> PASS document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, null) 
</span><del>-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return true })) assert_equals: .filter expected (function) function &quot;function (node) { return true }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return false })) assert_equals: .filter expected (function) function &quot;function (node) { return false }&quot; but got (object) object &quot;[object NodeFilter]&quot;
-FAIL document.createTreeWalker(xmlDoctype, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_DOCUMENT, (function(node) { return node.nodeName[0] == '#' })) assert_equals: .filter expected (function) function &quot;function (node) { return node.nodeName[0] == '#' }&quot; but got (object) object &quot;[object NodeFilter]&quot;
</del><ins>+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] == '#' })) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststraversalsizezerorunhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/traversal/size-zero-run.html (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/traversal/size-zero-run.html        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/LayoutTests/traversal/size-zero-run.html        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx">     textnode2.nodeValue = &quot;&quot;;
</span><span class="cx">     
</span><span class="cx">     var root = document.body;
</span><del>-    var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, NodeFilter.FILTER_ACCEPT, false);
</del><ins>+    var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, null, false);
</ins><span class="cx"> 
</span><span class="cx">     var n = it.nextNode();
</span><span class="cx">     while(n) {
</span><span class="lines">@@ -28,4 +28,4 @@
</span><span class="cx"> &lt;p&gt;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.&lt;/p&gt;
</span><span class="cx"> &lt;p&gt;This tests iteration using both the innerText property and NodeIterators.  It is successful if it doesn't crash Safari.&lt;/p&gt;
</span><span class="cx"> &lt;hr&gt;
</span><del>-&lt;a href=&quot;#&quot; id=&quot;node&quot;&gt;hello&lt;/a&gt;&lt;/body&gt;&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;a href=&quot;#&quot; id=&quot;node&quot;&gt;hello&lt;/a&gt;&lt;/body&gt;&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1160,7 +1160,6 @@
</span><span class="cx">     bindings/js/JSNamedNodeMapCustom.cpp
</span><span class="cx">     bindings/js/JSNavigatorCustom.cpp
</span><span class="cx">     bindings/js/JSNodeCustom.cpp
</span><del>-    bindings/js/JSNodeFilterCondition.cpp
</del><span class="cx">     bindings/js/JSNodeFilterCustom.cpp
</span><span class="cx">     bindings/js/JSNodeIteratorCustom.cpp
</span><span class="cx">     bindings/js/JSNodeOrString.cpp
</span><span class="lines">@@ -1435,8 +1434,8 @@
</span><span class="cx">     dom/NameNodeList.cpp
</span><span class="cx">     dom/NamedFlowCollection.cpp
</span><span class="cx">     dom/NamedNodeMap.cpp
</span><ins>+    dom/NativeNodeFilter.cpp
</ins><span class="cx">     dom/Node.cpp
</span><del>-    dom/NodeFilter.cpp
</del><span class="cx">     dom/NodeFilterCondition.cpp
</span><span class="cx">     dom/NodeIterator.cpp
</span><span class="cx">     dom/NodeOrString.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/ChangeLog        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1,5 +1,147 @@
</span><span class="cx"> 2015-09-01  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        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  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Range.insersectsNode(node) is supposed to return true if node.parent is null
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=148687
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -14543,20 +14543,6 @@
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><del>-    &lt;ClCompile Include=&quot;..\dom\NodeFilter.cpp&quot;&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='DebugSuffix|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-    &lt;/ClCompile&gt;
</del><span class="cx">     &lt;ClCompile Include=&quot;..\dom\NodeFilterCondition.cpp&quot;&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="lines">@@ -18451,20 +18437,6 @@
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><del>-    &lt;ClCompile Include=&quot;..\bindings\js\JSNodeFilterCondition.cpp&quot;&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='DebugSuffix|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
-    &lt;/ClCompile&gt;
</del><span class="cx">     &lt;ClCompile Include=&quot;..\bindings\js\JSNodeFilterCustom.cpp&quot;&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="lines">@@ -22467,7 +22439,6 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\bindings\js\JSMutationCallback.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\bindings\js\JSNodeCustom.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\bindings\js\JSNodeOrString.h&quot; /&gt;
</span><del>-    &lt;ClInclude Include=&quot;..\bindings\js\JSNodeFilterCondition.h&quot; /&gt;
</del><span class="cx">     &lt;ClInclude Include=&quot;..\bindings\js\JSPluginElementFunctions.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\bindings\js\JSWorkerGlobalScopeBase.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\bindings\js\ScheduledAction.h&quot; /&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -4401,9 +4401,6 @@
</span><span class="cx">     &lt;ClCompile Include=&quot;..\bindings\js\JSNodeCustom.cpp&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;bindings\js&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><del>-    &lt;ClCompile Include=&quot;..\bindings\js\JSNodeFilterCondition.cpp&quot;&gt;
-      &lt;Filter&gt;bindings\js&lt;/Filter&gt;
-    &lt;/ClCompile&gt;
</del><span class="cx">     &lt;ClCompile Include=&quot;..\bindings\js\JSNodeFilterCustom.cpp&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;bindings\js&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><span class="lines">@@ -11489,9 +11486,6 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\bindings\js\JSNodeCustom.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;bindings\js&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</span><del>-    &lt;ClInclude Include=&quot;..\bindings\js\JSNodeFilterCondition.h&quot;&gt;
-      &lt;Filter&gt;bindings\js&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
</del><span class="cx">     &lt;ClInclude Include=&quot;..\bindings\js\JSPluginElementFunctions.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;bindings\js&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -2684,6 +2684,7 @@
</span><span class="cx">                 830030F51B7D33B500ED3AAC /* GenericCachedHTMLCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 830030F31B7D33A600ED3AAC /* GenericCachedHTMLCollection.cpp */; };
</span><span class="cx">                 830030F61B7D33B500ED3AAC /* GenericCachedHTMLCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 830030F41B7D33A600ED3AAC /* GenericCachedHTMLCollection.h */; };
</span><span class="cx">                 830030F81B7D3B7800ED3AAC /* CachedHTMLCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 830030F71B7D398800ED3AAC /* CachedHTMLCollection.h */; };
</span><ins>+                8306EFF11B8BCEA50031D032 /* NativeNodeFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */; };
</ins><span class="cx">                 832B843419D8E55100B26055 /* SVGAnimateElementBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 832B843319D8E55100B26055 /* SVGAnimateElementBase.h */; };
</span><span class="cx">                 832B843619D8E57400B26055 /* SVGAnimateElementBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 832B843519D8E57400B26055 /* SVGAnimateElementBase.cpp */; };
</span><span class="cx">                 8348BFAB1B85729800912F36 /* ClassCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8348BFA91B85729500912F36 /* ClassCollection.cpp */; };
</span><span class="lines">@@ -2697,6 +2698,7 @@
</span><span class="cx">                 8386A97019F61E4F00E1EC4A /* StyleBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8386A96E19F61E4F00E1EC4A /* StyleBuilder.cpp */; };
</span><span class="cx">                 839AAFEC1A0C0C8D00605F99 /* HTMLWBRElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 839AAFEA1A0C0C8D00605F99 /* HTMLWBRElement.cpp */; };
</span><span class="cx">                 839AAFED1A0C0C8D00605F99 /* HTMLWBRElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 839AAFEB1A0C0C8D00605F99 /* HTMLWBRElement.h */; };
</span><ins>+                83B2D1751B8BCD6A00A02E47 /* NativeNodeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83E959E11B8BC22B004D9385 /* NativeNodeFilter.h */; };
</ins><span class="cx">                 83B9687B19F8AB83004EF7AF /* StyleBuilderConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B9687919F8AB83004EF7AF /* StyleBuilderConverter.h */; };
</span><span class="cx">                 83C05A5A1A686212007E5DEA /* StylePropertyShorthandFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83C05A581A686212007E5DEA /* StylePropertyShorthandFunctions.cpp */; };
</span><span class="cx">                 83C05A5B1A686212007E5DEA /* StylePropertyShorthandFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C05A591A686212007E5DEA /* StylePropertyShorthandFunctions.h */; };
</span><span class="lines">@@ -2718,6 +2720,7 @@
</span><span class="cx">                 83C1D434178D5AB500141E68 /* SVGPathSegLinetoVerticalRel.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D422178D5AB400141E68 /* SVGPathSegLinetoVerticalRel.h */; };
</span><span class="cx">                 83C1D435178D5AB500141E68 /* SVGPathSegMovetoAbs.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D423178D5AB400141E68 /* SVGPathSegMovetoAbs.h */; };
</span><span class="cx">                 83C1D436178D5AB500141E68 /* SVGPathSegMovetoRel.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D424178D5AB400141E68 /* SVGPathSegMovetoRel.h */; };
</span><ins>+                83F1206B1B8C104700D75F63 /* JSNodeFilterCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */; };
</ins><span class="cx">                 8419D2A7120D92D000141F8F /* SVGPathByteStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419D2A4120D92D000141F8F /* SVGPathByteStream.h */; };
</span><span class="cx">                 8419D2A8120D92D000141F8F /* SVGPathByteStreamBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */; };
</span><span class="cx">                 8419D2A9120D92D000141F8F /* SVGPathByteStreamBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419D2A6120D92D000141F8F /* SVGPathByteStreamBuilder.h */; };
</span><span class="lines">@@ -2909,7 +2912,6 @@
</span><span class="cx">                 8542A7980AE5C94300DF58DF /* JSSVGNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8574D1F30ADE6122004CBA11 /* JSSVGNumber.cpp */; };
</span><span class="cx">                 8542A7990AE5C94400DF58DF /* JSSVGElementWrapperFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 8574D1F20ADE6122004CBA11 /* JSSVGElementWrapperFactory.h */; };
</span><span class="cx">                 8542A79A0AE5C94400DF58DF /* JSSVGElementWrapperFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8574D1F10ADE6122004CBA11 /* JSSVGElementWrapperFactory.cpp */; };
</span><del>-                854FE7300A2297BE0058D7AD /* NodeFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 854FE7260A2297BE0058D7AD /* NodeFilter.cpp */; };
</del><span class="cx">                 854FE7310A2297BE0058D7AD /* NodeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 854FE7270A2297BE0058D7AD /* NodeFilter.h */; };
</span><span class="cx">                 854FE7320A2297BE0058D7AD /* NodeFilterCondition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 854FE7280A2297BE0058D7AD /* NodeFilterCondition.cpp */; };
</span><span class="cx">                 854FE7330A2297BE0058D7AD /* NodeFilterCondition.h in Headers */ = {isa = PBXBuildFile; fileRef = 854FE7290A2297BE0058D7AD /* NodeFilterCondition.h */; };
</span><span class="lines">@@ -5487,9 +5489,6 @@
</span><span class="cx">                 BCB16C280979C3BD00467741 /* CachedXSLStyleSheet.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB16C0F0979C3BD00467741 /* CachedXSLStyleSheet.h */; };
</span><span class="cx">                 BCB16C290979C3BD00467741 /* CachedResourceLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB16C100979C3BD00467741 /* CachedResourceLoader.cpp */; };
</span><span class="cx">                 BCB16C2A0979C3BD00467741 /* CachedResourceLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB16C110979C3BD00467741 /* CachedResourceLoader.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                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 */; };
</del><span class="cx">                 BCB92D4F1293550B00C8387F /* FontBaseline.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB92D4E1293550B00C8387F /* FontBaseline.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BCBB8AB913F1AFB000734DF0 /* PODInterval.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBB8AB513F1AFB000734DF0 /* PODInterval.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BCBB8ABA13F1AFB000734DF0 /* PODIntervalTree.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBB8AB613F1AFB000734DF0 /* PODIntervalTree.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -10049,6 +10048,7 @@
</span><span class="cx">                 830030F31B7D33A600ED3AAC /* GenericCachedHTMLCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GenericCachedHTMLCollection.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 830030F41B7D33A600ED3AAC /* GenericCachedHTMLCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericCachedHTMLCollection.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 830030F71B7D398800ED3AAC /* CachedHTMLCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedHTMLCollection.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NativeNodeFilter.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 832B843319D8E55100B26055 /* SVGAnimateElementBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimateElementBase.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 832B843519D8E57400B26055 /* SVGAnimateElementBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimateElementBase.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8348BFA91B85729500912F36 /* ClassCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClassCollection.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -10086,6 +10086,8 @@
</span><span class="cx">                 83C1D424178D5AB400141E68 /* SVGPathSegMovetoRel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegMovetoRel.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 83D26D3C1AFDCC50001B3873 /* ChildNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ChildNode.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 83D26D3D1AFDCC50001B3873 /* ParentNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ParentNode.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                83E959E11B8BC22B004D9385 /* NativeNodeFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeNodeFilter.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 8419D2A4120D92D000141F8F /* SVGPathByteStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStream.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathByteStreamBuilder.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8419D2A6120D92D000141F8F /* SVGPathByteStreamBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStreamBuilder.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -10261,7 +10263,6 @@
</span><span class="cx">                 854075660AD6CBF900620C57 /* DOMHTMLOptionElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMHTMLOptionElement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 854075670AD6CBF900620C57 /* DOMHTMLOptionElement.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMHTMLOptionElement.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 854075680AD6CBF900620C57 /* DOMHTMLOptionElementInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMHTMLOptionElementInternal.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                854FE7260A2297BE0058D7AD /* NodeFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = NodeFilter.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 854FE7270A2297BE0058D7AD /* NodeFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NodeFilter.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 854FE7280A2297BE0058D7AD /* NodeFilterCondition.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = NodeFilterCondition.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 854FE7290A2297BE0058D7AD /* NodeFilterCondition.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NodeFilterCondition.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -13090,9 +13091,6 @@
</span><span class="cx">                 BCB16C0F0979C3BD00467741 /* CachedXSLStyleSheet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CachedXSLStyleSheet.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCB16C100979C3BD00467741 /* CachedResourceLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = CachedResourceLoader.cpp; sourceTree = &quot;&lt;group&gt;&quot;; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
</span><span class="cx">                 BCB16C110979C3BD00467741 /* CachedResourceLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CachedResourceLoader.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                BCB7735E0C17853D00132BA4 /* JSNodeFilterCondition.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCondition.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                BCB7735F0C17853D00132BA4 /* JSNodeFilterCondition.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSNodeFilterCondition.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                BCB773600C17853D00132BA4 /* JSNodeFilterCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 BCB92D4E1293550B00C8387F /* FontBaseline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontBaseline.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCBB8AB513F1AFB000734DF0 /* PODInterval.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PODInterval.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCBB8AB613F1AFB000734DF0 /* PODIntervalTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PODIntervalTree.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -21382,6 +21380,7 @@
</span><span class="cx">                                 BCBFB53A0DCD29CF0019B3E5 /* JSDOMWindowShell.cpp */,
</span><span class="cx">                                 BCBFB53B0DCD29CF0019B3E5 /* JSDOMWindowShell.h */,
</span><span class="cx">                                 65E0E9431133C89F00B4CB10 /* JSDOMWrapper.h */,
</span><ins>+                                83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */,
</ins><span class="cx">                                 7C91A38D1B498ABE003F9EFA /* JSNodeOrString.cpp */,
</span><span class="cx">                                 7C91A38E1B498ABE003F9EFA /* JSNodeOrString.h */,
</span><span class="cx">                                 F3D461461161D53200CA0D09 /* JSErrorHandler.cpp */,
</span><span class="lines">@@ -21565,7 +21564,6 @@
</span><span class="cx">                                 073794E719EE335C00E5A045 /* JSNavigatorCustom.cpp */,
</span><span class="cx">                                 BCD9C2600C17AA67005C90A2 /* JSNodeCustom.cpp */,
</span><span class="cx">                                 BC9439C2116CF4940048C750 /* JSNodeCustom.h */,
</span><del>-                                BCB773600C17853D00132BA4 /* JSNodeFilterCustom.cpp */,
</del><span class="cx">                                 1A750DD30A90E729000FF215 /* JSNodeIteratorCustom.cpp */,
</span><span class="cx">                                 BCD9C2610C17AA67005C90A2 /* JSNodeListCustom.cpp */,
</span><span class="cx">                                 AD20B18C18E9D216005A8083 /* JSNodeListCustom.h */,
</span><span class="lines">@@ -21884,8 +21882,6 @@
</span><span class="cx">                                 93B70D4E09EB0C7C009D8468 /* JSEventListener.h */,
</span><span class="cx">                                 935F45400F7C3B5F00D7C1FB /* JSLazyEventListener.cpp */,
</span><span class="cx">                                 935F45410F7C3B5F00D7C1FB /* JSLazyEventListener.h */,
</span><del>-                                BCB7735E0C17853D00132BA4 /* JSNodeFilterCondition.cpp */,
-                                BCB7735F0C17853D00132BA4 /* JSNodeFilterCondition.h */,
</del><span class="cx">                         );
</span><span class="cx">                         name = &quot;Callback Objects&quot;;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -23396,10 +23392,11 @@
</span><span class="cx">                                 85ACA9F90A9B631000671E90 /* NamedNodeMap.idl */,
</span><span class="cx">                                 A81872190977D3C0005826D9 /* NameNodeList.cpp */,
</span><span class="cx">                                 A81872130977D3C0005826D9 /* NameNodeList.h */,
</span><ins>+                                8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */,
+                                83E959E11B8BC22B004D9385 /* NativeNodeFilter.h */,
</ins><span class="cx">                                 A8C4A7EE09D563270003AC8D /* Node.cpp */,
</span><span class="cx">                                 14115B5109F84B7100CA4FC1 /* Node.h */,
</span><span class="cx">                                 14DC0D0B09FECFA4007B0235 /* Node.idl */,
</span><del>-                                854FE7260A2297BE0058D7AD /* NodeFilter.cpp */,
</del><span class="cx">                                 854FE7270A2297BE0058D7AD /* NodeFilter.h */,
</span><span class="cx">                                 14115AF909F847D600CA4FC1 /* NodeFilter.idl */,
</span><span class="cx">                                 854FE7280A2297BE0058D7AD /* NodeFilterCondition.cpp */,
</span><span class="lines">@@ -24758,6 +24755,7 @@
</span><span class="cx">                                 853BF4DB0ABB6B55008647BB /* DOMNode.h in Headers */,
</span><span class="cx">                                 854075260AD6C66700620C57 /* DOMNodeFilter.h in Headers */,
</span><span class="cx">                                 85B498FB0ADB340200925CBB /* DOMNodeInternal.h in Headers */,
</span><ins>+                                83B2D1751B8BCD6A00A02E47 /* NativeNodeFilter.h in Headers */,
</ins><span class="cx">                                 85526C370AB0A17E000302EA /* DOMNodeIterator.h in Headers */,
</span><span class="cx">                                 850B41C20AD9E7E700A6ED4F /* DOMNodeIteratorInternal.h in Headers */,
</span><span class="cx">                                 85ACAA8D0A9B759C00671E90 /* DOMNodeList.h in Headers */,
</span><span class="lines">@@ -25640,7 +25638,6 @@
</span><span class="cx">                                 073BE34D17D17E7A002BD431 /* JSNavigatorUserMediaSuccessCallback.h in Headers */,
</span><span class="cx">                                 BC9439C3116CF4940048C750 /* JSNodeCustom.h in Headers */,
</span><span class="cx">                                 14115B7309F84CD600CA4FC1 /* JSNodeFilter.h in Headers */,
</span><del>-                                BCB773620C17853D00132BA4 /* JSNodeFilterCondition.h in Headers */,
</del><span class="cx">                                 1A750D8E0A90E521000FF215 /* JSNodeIterator.h in Headers */,
</span><span class="cx">                                 BCD9C2C30C17B69E005C90A2 /* JSNodeList.h in Headers */,
</span><span class="cx">                                 AD20B18D18E9D237005A8083 /* JSNodeListCustom.h in Headers */,
</span><span class="lines">@@ -28889,6 +28886,7 @@
</span><span class="cx">                                 BC2ED6BC0C6BD2F000920BFF /* JSAttrCustom.cpp in Sources */,
</span><span class="cx">                                 FDA15E9D12B03EE1003A583A /* JSAudioBuffer.cpp in Sources */,
</span><span class="cx">                                 FDF7E9C313AC21DB00A51EAC /* JSAudioBufferCallback.cpp in Sources */,
</span><ins>+                                83F1206B1B8C104700D75F63 /* JSNodeFilterCustom.cpp in Sources */,
</ins><span class="cx">                                 FDA15E9F12B03EE1003A583A /* JSAudioBufferSourceNode.cpp in Sources */,
</span><span class="cx">                                 FDEAAAF312B02EE400DCF33B /* JSAudioBufferSourceNodeCustom.cpp in Sources */,
</span><span class="cx">                                 FDA15EA512B03EE1003A583A /* JSAudioContext.cpp in Sources */,
</span><span class="lines">@@ -29166,6 +29164,7 @@
</span><span class="cx">                                 511EF2D117F0FDF100E4FA16 /* JSIDBObjectStoreCustom.cpp in Sources */,
</span><span class="cx">                                 511EF2C817F0FD3500E4FA16 /* JSIDBOpenDBRequest.cpp in Sources */,
</span><span class="cx">                                 511EF2C917F0FD3500E4FA16 /* JSIDBRequest.cpp in Sources */,
</span><ins>+                                8306EFF11B8BCEA50031D032 /* NativeNodeFilter.cpp in Sources */,
</ins><span class="cx">                                 511EF2CA17F0FD3500E4FA16 /* JSIDBTransaction.cpp in Sources */,
</span><span class="cx">                                 511EF2CB17F0FD3500E4FA16 /* JSIDBVersionChangeEvent.cpp in Sources */,
</span><span class="cx">                                 BC6C49F30D7DBA0500FFA558 /* JSImageConstructor.cpp in Sources */,
</span><span class="lines">@@ -29231,8 +29230,6 @@
</span><span class="cx">                                 14DC0D3709FED073007B0235 /* JSNode.cpp in Sources */,
</span><span class="cx">                                 BCD9C2640C17AA67005C90A2 /* JSNodeCustom.cpp in Sources */,
</span><span class="cx">                                 14115B7209F84CD600CA4FC1 /* JSNodeFilter.cpp in Sources */,
</span><del>-                                BCB773610C17853D00132BA4 /* JSNodeFilterCondition.cpp in Sources */,
-                                BCB773630C17853D00132BA4 /* JSNodeFilterCustom.cpp in Sources */,
</del><span class="cx">                                 1A750D8D0A90E521000FF215 /* JSNodeIterator.cpp in Sources */,
</span><span class="cx">                                 1A750DD40A90E729000FF215 /* JSNodeIteratorCustom.cpp in Sources */,
</span><span class="cx">                                 BCD9C2C20C17B69E005C90A2 /* JSNodeList.cpp in Sources */,
</span><span class="lines">@@ -29768,7 +29765,6 @@
</span><span class="cx">                                 267726001A5B3AD9003C24DD /* NFAToDFA.cpp in Sources */,
</span><span class="cx">                                 BCEF43E00E674110001C1287 /* NinePieceImage.cpp in Sources */,
</span><span class="cx">                                 A8C4A80009D563270003AC8D /* Node.cpp in Sources */,
</span><del>-                                854FE7300A2297BE0058D7AD /* NodeFilter.cpp in Sources */,
</del><span class="cx">                                 854FE7320A2297BE0058D7AD /* NodeFilterCondition.cpp in Sources */,
</span><span class="cx">                                 854FE7340A2297BE0058D7AD /* NodeIterator.cpp in Sources */,
</span><span class="cx">                                 4FFC022B1643B710004E1638 /* NodeRareData.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsgobjectGObjectNodeFilterConditioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx">     g_object_set_data(G_OBJECT(m_filter.get()), &quot;webkit-core-node-filter&quot;, nullptr);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-short GObjectNodeFilterCondition::acceptNode(JSC::ExecState*, Node* node) const
</del><ins>+short GObjectNodeFilterCondition::acceptNode(Node* node) const
</ins><span class="cx"> {
</span><span class="cx">     if (!node)
</span><span class="cx">         return NodeFilter::FILTER_REJECT;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsgobjectGObjectNodeFilterConditionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/gobject/GObjectNodeFilterCondition.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx">         return adoptRef(*new GObjectNodeFilterCondition(filter));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    virtual short acceptNode(JSC::ExecState*, Node*) const;
</del><ins>+    virtual short acceptNode(Node*) const override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     GObjectNodeFilterCondition(WebKitDOMNodeFilter* filter)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsgobjectWebKitDOMNodeFiltercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -20,7 +20,7 @@
</span><span class="cx"> #include &quot;WebKitDOMNodeFilter.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;GObjectNodeFilterCondition.h&quot;
</span><del>-#include &quot;NodeFilter.h&quot;
</del><ins>+#include &quot;NativeNodeFilter.h&quot;
</ins><span class="cx"> #include &quot;WebKitDOMNode.h&quot;
</span><span class="cx"> #include &quot;WebKitDOMNodeFilterPrivate.h&quot;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;WebCore::NodeFilter&gt; coreNodeFilter = static_cast&lt;WebCore::NodeFilter*&gt;(g_object_get_data(G_OBJECT(nodeFilter), &quot;webkit-core-node-filter&quot;));
</span><span class="cx">     if (!coreNodeFilter) {
</span><del>-        coreNodeFilter = WebCore::NodeFilter::create(WebCore::GObjectNodeFilterCondition::create(nodeFilter));
</del><ins>+        coreNodeFilter = WebCore::NativeNodeFilter::create(WebCore::GObjectNodeFilterCondition::create(nodeFilter));
</ins><span class="cx">         nodeFilterMap().add(coreNodeFilter.get(), nodeFilter);
</span><span class="cx">         g_object_weak_ref(G_OBJECT(nodeFilter), nodeFilterObjectDestroyedCallback, coreNodeFilter.get());
</span><span class="cx">         g_object_set_data(G_OBJECT(nodeFilter), &quot;webkit-core-node-filter&quot;, coreNodeFilter.get());
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSBindingsAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -114,7 +114,6 @@
</span><span class="cx"> #include &quot;JSMutationObserverCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSNamedNodeMapCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSNodeCustom.cpp&quot;
</span><del>-#include &quot;JSNodeFilterCondition.cpp&quot;
</del><span class="cx"> #include &quot;JSNodeFilterCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSNodeIteratorCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSNodeListCustom.cpp&quot;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCallbackDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCallbackData.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCallbackData.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/js/JSCallbackData.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2007-2009, 2015 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -33,51 +33,47 @@
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><span class="cx"> #include &quot;JSMainThreadExecState.h&quot;
</span><span class="cx"> #include &quot;JSMainThreadExecStateInstrumentation.h&quot;
</span><ins>+#include &lt;runtime/Exception.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span><span class="cx">     
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-void JSCallbackData::deleteData(void* context)
</del><ins>+JSValue JSCallbackData::invokeCallback(JSObject* callback, MarkedArgumentBuffer&amp; args, CallbackType method, PropertyName functionName, NakedPtr&lt;Exception&gt;&amp; returnedException)
</ins><span class="cx"> {
</span><del>-    delete static_cast&lt;JSCallbackData*&gt;(context);
-}
</del><ins>+    ASSERT(callback);
</ins><span class="cx"> 
</span><del>-JSValue JSCallbackData::invokeCallback(MarkedArgumentBuffer&amp; args, CallbackType method, PropertyName functionName, NakedPtr&lt;Exception&gt;&amp; returnedException)
-{
-    ASSERT(callback());
-    return invokeCallback(callback(), args, method, functionName, returnedException);
-}
</del><ins>+    auto* globalObject = JSC::jsCast&lt;JSDOMGlobalObject*&gt;(callback-&gt;globalObject());
+    ASSERT(globalObject);
</ins><span class="cx"> 
</span><del>-JSValue JSCallbackData::invokeCallback(JSValue thisValue, MarkedArgumentBuffer&amp; args, CallbackType method, PropertyName functionName, NakedPtr&lt;Exception&gt;&amp; returnedException)
-{
-    ASSERT(callback());
-    ASSERT(globalObject());
-
-    ExecState* exec = globalObject()-&gt;globalExec();
</del><ins>+    ExecState* exec = globalObject-&gt;globalExec();
</ins><span class="cx">     JSValue function;
</span><span class="cx">     CallData callData;
</span><span class="cx">     CallType callType = CallTypeNone;
</span><span class="cx"> 
</span><span class="cx">     if (method != CallbackType::Object) {
</span><del>-        function = callback();
-        callType = callback()-&gt;methodTable()-&gt;getCallData(callback(), callData);
</del><ins>+        function = callback;
+        callType = callback-&gt;methodTable()-&gt;getCallData(callback, callData);
</ins><span class="cx">     }
</span><span class="cx">     if (callType == CallTypeNone) {
</span><del>-        if (method == CallbackType::Function)
</del><ins>+        if (method == CallbackType::Function) {
+            returnedException = Exception::create(exec-&gt;vm(), createTypeError(exec));
</ins><span class="cx">             return JSValue();
</span><ins>+        }
</ins><span class="cx"> 
</span><span class="cx">         ASSERT(!functionName.isNull());
</span><del>-        function = callback()-&gt;get(exec, functionName);
</del><ins>+        function = callback-&gt;get(exec, functionName);
</ins><span class="cx">         callType = getCallData(function, callData);
</span><del>-        if (callType == CallTypeNone)
</del><ins>+        if (callType == CallTypeNone) {
+            returnedException = Exception::create(exec-&gt;vm(), createTypeError(exec));
</ins><span class="cx">             return JSValue();
</span><ins>+        }
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ASSERT(!function.isEmpty());
</span><span class="cx">     ASSERT(callType != CallTypeNone);
</span><span class="cx"> 
</span><del>-    ScriptExecutionContext* context = globalObject()-&gt;scriptExecutionContext();
</del><ins>+    ScriptExecutionContext* context = globalObject-&gt;scriptExecutionContext();
</ins><span class="cx">     // We will fail to get the context if the frame has been detached.
</span><span class="cx">     if (!context)
</span><span class="cx">         return JSValue();
</span><span class="lines">@@ -86,12 +82,17 @@
</span><span class="cx"> 
</span><span class="cx">     returnedException = nullptr;
</span><span class="cx">     JSValue result = context-&gt;isDocument()
</span><del>-        ? JSMainThreadExecState::call(exec, function, callType, callData, thisValue, args, returnedException)
-        : JSC::call(exec, function, callType, callData, thisValue, args, returnedException);
</del><ins>+        ? JSMainThreadExecState::call(exec, function, callType, callData, callback, args, returnedException)
+        : JSC::call(exec, function, callType, callData, callback, args, returnedException);
</ins><span class="cx"> 
</span><span class="cx">     InspectorInstrumentation::didCallFunction(cookie, context);
</span><span class="cx"> 
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool JSCallbackDataWeak::WeakOwner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt;, void* context, SlotVisitor&amp; visitor)
+{
+    return visitor.containsOpaqueRoot(context);
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCallbackDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCallbackData.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCallbackData.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/js/JSCallbackData.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2007-2009, 2015 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -45,13 +45,12 @@
</span><span class="cx"> 
</span><span class="cx"> class JSCallbackData {
</span><span class="cx"> public:
</span><del>-    static void deleteData(void*);
</del><ins>+    enum class CallbackType { Function, Object, FunctionOrObject };
</ins><span class="cx"> 
</span><del>-    JSCallbackData(JSC::JSObject* callback, JSDOMGlobalObject* globalObject)
-        : m_callback(globalObject-&gt;vm(), callback)
-        , m_globalObject(globalObject-&gt;vm(), globalObject)
</del><ins>+protected:
+    JSCallbackData()
</ins><span class="cx"> #ifndef NDEBUG
</span><del>-        , m_thread(currentThread())
</del><ins>+        : m_thread(currentThread())
</ins><span class="cx"> #endif
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="lines">@@ -62,25 +61,61 @@
</span><span class="cx">         ASSERT(m_thread == currentThread());
</span><span class="cx"> #endif
</span><span class="cx">     }
</span><del>-
-    JSC::JSObject* callback() { return m_callback.get(); }
-    JSDOMGlobalObject* globalObject() { return m_globalObject.get(); }
</del><span class="cx">     
</span><del>-    enum class CallbackType { Function, Object, FunctionOrObject };
-    JSC::JSValue invokeCallback(JSC::MarkedArgumentBuffer&amp;, CallbackType, JSC::PropertyName functionName, NakedPtr&lt;JSC::Exception&gt;&amp; returnedException);
-    JSC::JSValue invokeCallback(JSC::JSValue thisValue, JSC::MarkedArgumentBuffer&amp;, CallbackType, JSC::PropertyName functionName, NakedPtr&lt;JSC::Exception&gt;&amp; returnedException);
</del><ins>+    static JSC::JSValue invokeCallback(JSC::JSObject* callback, JSC::MarkedArgumentBuffer&amp;, CallbackType, JSC::PropertyName functionName, NakedPtr&lt;JSC::Exception&gt;&amp; returnedException);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    JSC::Strong&lt;JSC::JSObject&gt; m_callback;
-    JSC::Strong&lt;JSDOMGlobalObject&gt; m_globalObject;
</del><span class="cx"> #ifndef NDEBUG
</span><span class="cx">     ThreadIdentifier m_thread;
</span><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+class JSCallbackDataStrong : public JSCallbackData {
+public:
+    JSCallbackDataStrong(JSC::JSObject* callback, void*)
+        : m_callback(callback-&gt;globalObject()-&gt;vm(), callback)
+    {
+    }
+
+    JSC::JSObject* callback() { return m_callback.get(); }
+    JSDOMGlobalObject* globalObject() { return JSC::jsCast&lt;JSDOMGlobalObject*&gt;(m_callback-&gt;globalObject()); }
+
+    JSC::JSValue invokeCallback(JSC::MarkedArgumentBuffer&amp; args, CallbackType callbackType, JSC::PropertyName functionName, NakedPtr&lt;JSC::Exception&gt;&amp; returnedException)
+    {
+        return JSCallbackData::invokeCallback(callback(), args, callbackType, functionName, returnedException);
+    }
+
+private:
+    JSC::Strong&lt;JSC::JSObject&gt; m_callback;
+};
+
+class JSCallbackDataWeak : public JSCallbackData {
+public:
+    JSCallbackDataWeak(JSC::JSObject* callback, void* owner)
+        : m_callback(callback, &amp;m_weakOwner, owner)
+    {
+    }
+
+    JSC::JSObject* callback() { return m_callback.get(); }
+    JSDOMGlobalObject* globalObject() { return JSC::jsCast&lt;JSDOMGlobalObject*&gt;(m_callback-&gt;globalObject()); }
+
+    JSC::JSValue invokeCallback(JSC::MarkedArgumentBuffer&amp; args, CallbackType callbackType, JSC::PropertyName functionName, NakedPtr&lt;JSC::Exception&gt;&amp; returnedException)
+    {
+        return JSCallbackData::invokeCallback(callback(), args, callbackType, functionName, returnedException);
+    }
+
+private:
+    class WeakOwner : public JSC::WeakHandleOwner {
+        virtual bool isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt;, void* context, JSC::SlotVisitor&amp;);
+    };
+    WeakOwner m_weakOwner;
+    JSC::Weak&lt;JSC::JSObject&gt; m_callback;
+};
+
</ins><span class="cx"> class DeleteCallbackDataTask : public ScriptExecutionContext::Task {
</span><span class="cx"> public:
</span><del>-    DeleteCallbackDataTask(JSCallbackData* data)
</del><ins>+    template &lt;typename CallbackDataType&gt;
+    explicit DeleteCallbackDataTask(CallbackDataType* data)
</ins><span class="cx">         : ScriptExecutionContext::Task(ScriptExecutionContext::Task::CleanupTask, [data] (ScriptExecutionContext&amp;) {
</span><span class="cx">             delete data;
</span><span class="cx">         })
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNodeFilterConditioncpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1,86 +0,0 @@
</span><del>-/*
- *  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 &quot;config.h&quot;
-#include &quot;JSNodeFilterCondition.h&quot;
-
-#include &quot;JSMainThreadExecState.h&quot;
-#include &quot;JSNode.h&quot;
-#include &quot;JSNodeFilter.h&quot;
-#include &quot;NodeFilter.h&quot;
-#include &lt;runtime/Error.h&gt;
-#include &lt;runtime/JSLock.h&gt;
-
-namespace WebCore {
-
-using namespace JSC;
-
-JSNodeFilterCondition::JSNodeFilterCondition(VM&amp;, NodeFilter* owner, JSValue filter)
-    : m_filter(filter.isObject() ? Weak&lt;JSObject&gt;(jsCast&lt;JSObject*&gt;(filter), &amp;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, &quot;acceptNode&quot;));
-        callType = getCallData(filter, callData);
-        if (callType == CallTypeNone) {
-            exec-&gt;vm().throwException(exec, createTypeError(exec, &quot;NodeFilter object does not have an acceptNode function&quot;));
-            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-&gt;hadException())
-        return NodeFilter::FILTER_REJECT;
-
-    JSValue result = JSC::call(exec, filter, callType, callData, m_filter.get(), args);
-    if (exec-&gt;hadException())
-        return NodeFilter::FILTER_REJECT;
-
-    int intResult = result.toInt32(exec);
-    if (exec-&gt;hadException())
-        return NodeFilter::FILTER_REJECT;
-
-    return intResult;
-}
-
-bool JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt;, void* context, SlotVisitor&amp; visitor)
-{
-    return visitor.containsOpaqueRoot(context);
-}
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNodeFilterConditionh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1,56 +0,0 @@
</span><del>-/*
- *  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 &quot;NodeFilterCondition.h&quot;
-#include &lt;heap/Weak.h&gt;
-#include &lt;heap/WeakInlines.h&gt;
-#include &lt;runtime/JSCInlines.h&gt;
-#include &lt;runtime/JSCJSValue.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-
-namespace WebCore {
-
-    class Node;
-    class NodeFilter;
-
-    class JSNodeFilterCondition : public NodeFilterCondition {
-    public:
-        static Ref&lt;JSNodeFilterCondition&gt; create(JSC::VM&amp; vm, NodeFilter* owner, JSC::JSValue filter)
-        {
-            return adoptRef(*new JSNodeFilterCondition(vm, owner, filter));
-        }
-
-    private:
-        JSNodeFilterCondition(JSC::VM&amp;, NodeFilter* owner, JSC::JSValue filter);
-
-        virtual short acceptNode(JSC::ExecState*, Node*) const;
-
-        class WeakOwner : public JSC::WeakHandleOwner {
-            virtual bool isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt;, void* context, JSC::SlotVisitor&amp;);
-        };
-        WeakOwner m_weakOwner;
-        mutable JSC::Weak&lt;JSC::JSObject&gt; m_filter;
-    };
-
-} // namespace WebCore
-
-#endif // JSNodeFilterCondition_h
</del></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNodeFilterCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2015 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -10,41 +10,58 @@
</span><span class="cx">  *    notice, this list of conditions and the following disclaimer in the
</span><span class="cx">  *    documentation and/or other materials provided with the distribution.
</span><span class="cx">  *
</span><del>- * 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. 
</del><ins>+ * 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.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;JSNodeFilter.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;JSNodeFilterCondition.h&quot;
</del><ins>+#include &quot;JSCallbackData.h&quot;
+#include &quot;JSNode.h&quot;
+#include &quot;NodeFilter.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-void JSNodeFilter::visitAdditionalChildren(JSC::SlotVisitor&amp; visitor)
-{
-    visitor.addOpaqueRoot(&amp;impl());
-}
</del><ins>+using namespace JSC;
</ins><span class="cx"> 
</span><del>-RefPtr&lt;NodeFilter&gt; JSNodeFilter::toWrapped(JSC::VM&amp; vm, JSC::JSValue value)
</del><ins>+// 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)
</ins><span class="cx"> {
</span><del>-    if (value.inherits(JSNodeFilter::info()))
-        return &amp;JSC::jsCast&lt;JSNodeFilter*&gt;(asObject(value))-&gt;impl();
</del><ins>+    Ref&lt;JSNodeFilter&gt; protect(*this);
</ins><span class="cx"> 
</span><del>-    if (!value.isObject())
-        return nullptr;
</del><ins>+    JSLockHolder lock(m_data-&gt;globalObject()-&gt;vm());
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;NodeFilter&gt; result = NodeFilter::create();
-    result-&gt;setCondition(JSNodeFilterCondition::create(vm, result.get(), value));
</del><ins>+    ExecState* exec = m_data-&gt;globalObject()-&gt;globalExec();
+    MarkedArgumentBuffer args;
+    args.append(toJS(exec, m_data-&gt;globalObject(), node));
+    if (exec-&gt;hadException())
+        return NodeFilter::FILTER_REJECT;
+
+    NakedPtr&lt;Exception&gt; returnedException;
+    JSValue value = m_data-&gt;invokeCallback(args, JSCallbackData::CallbackType::FunctionOrObject, Identifier::fromString(exec, &quot;acceptNode&quot;), returnedException);
+    if (returnedException) {
+        // Rethrow exception.
+        exec-&gt;vm().setException(returnedException);
+
+        return NodeFilter::FILTER_REJECT;
+    }
+
+    uint16_t result = toUInt16(exec, value, NormalConversion);
+    if (exec-&gt;hadException())
+        return NodeFilter::FILTER_REJECT;
+
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsobjcObjCNodeFilterConditionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">             return adoptRef(*new ObjCNodeFilterCondition(filter));
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual short acceptNode(JSC::ExecState*, Node*) const;
</del><ins>+        virtual short acceptNode(Node*) const;
</ins><span class="cx"> 
</span><span class="cx">     private:
</span><span class="cx">         ObjCNodeFilterCondition(id &lt;DOMNodeFilter&gt; filter)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsobjcObjCNodeFilterConditionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.mm (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.mm        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/objc/ObjCNodeFilterCondition.mm        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-short ObjCNodeFilterCondition::acceptNode(ExecState*, Node* node) const
</del><ins>+short ObjCNodeFilterCondition::acceptNode(Node* node) const
</ins><span class="cx"> {
</span><span class="cx">     if (!node)
</span><span class="cx">         return NodeFilter::FILTER_REJECT;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorGObjectpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -305,7 +305,7 @@
</span><span class="cx">     # sequence&lt;T&gt; parameters, because this code generator doesn't know how to auto-generate
</span><span class="cx">     # MediaQueryListListener or sequence&lt;T&gt;. Skip EventListeners because they are handled elsewhere.
</span><span class="cx">     foreach my $param (@{$function-&gt;parameters}) {
</span><del>-        if ($codeGenerator-&gt;IsCallbackInterface($param-&gt;type) ||
</del><ins>+        if ($codeGenerator-&gt;IsFunctionOnlyCallbackInterface($param-&gt;type) ||
</ins><span class="cx">             $param-&gt;extendedAttributes-&gt;{&quot;Clamp&quot;} ||
</span><span class="cx">             $param-&gt;type eq &quot;MediaQueryListListener&quot; ||
</span><span class="cx">             $param-&gt;type eq &quot;EventListener&quot; ||
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -191,6 +191,13 @@
</span><span class="cx">     return &quot;JS$className&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub GetJSCallbackDataType
+{
+    my $callbackInterface = shift;
+
+    return $callbackInterface-&gt;extendedAttributes-&gt;{&quot;IsWeakCallback&quot;} ? &quot;JSCallbackDataWeak&quot; : &quot;JSCallbackDataStrong&quot;;
+}
+
</ins><span class="cx"> sub AddIncludesForTypeInImpl
</span><span class="cx"> {
</span><span class="cx">     my $type = shift;
</span><span class="lines">@@ -3475,6 +3482,8 @@
</span><span class="cx">     # Destructor
</span><span class="cx">     push(@headerContent, &quot;    virtual ~$className();\n&quot;);
</span><span class="cx"> 
</span><ins>+    push(@headerContent, &quot;    &quot; . GetJSCallbackDataType($interface) . &quot;* callbackData() { return m_data; }\n&quot;);
+
</ins><span class="cx">     # Constructor object getter.
</span><span class="cx">     if (@{$interface-&gt;constants}) {
</span><span class="cx">         push(@headerContent, &quot;    static JSC::JSValue getConstructor(JSC::VM&amp;, JSC::JSGlobalObject*);\n&quot;);
</span><span class="lines">@@ -3513,9 +3522,13 @@
</span><span class="cx">     push(@headerContent, &quot;    $className(JSC::JSObject* callback, JSDOMGlobalObject*);\n\n&quot;);
</span><span class="cx"> 
</span><span class="cx">     # Private members
</span><del>-    push(@headerContent, &quot;    JSCallbackData* m_data;\n&quot;);
</del><ins>+    push(@headerContent, &quot;    &quot; . GetJSCallbackDataType($interface) . &quot;* m_data;\n&quot;);
</ins><span class="cx">     push(@headerContent, &quot;};\n\n&quot;);
</span><span class="cx"> 
</span><ins>+    # toJS().
+    push(@headerContent, &quot;JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, $interfaceName*);\n&quot;);
+    push(@headerContent, &quot;inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, $interfaceName&amp; impl) { return toJS(exec, globalObject, &amp;impl); }\n\n&quot;);
+
</ins><span class="cx">     push(@headerContent, &quot;} // namespace WebCore\n\n&quot;);
</span><span class="cx">     my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($interface);
</span><span class="cx">     push(@headerContent, &quot;#endif // ${conditionalString}\n\n&quot;) if $conditionalString;
</span><span class="lines">@@ -3549,7 +3562,7 @@
</span><span class="cx">         push(@implContent, &quot;    : ${interfaceName}()\n&quot;);
</span><span class="cx">     }
</span><span class="cx">     push(@implContent, &quot;    , ActiveDOMCallback(globalObject-&gt;scriptExecutionContext())\n&quot;);
</span><del>-    push(@implContent, &quot;    , m_data(new JSCallbackData(callback, globalObject))\n&quot;);
</del><ins>+    push(@implContent, &quot;    , m_data(new &quot; . GetJSCallbackDataType($interface) . &quot;(callback, this))\n&quot;);
</ins><span class="cx">     push(@implContent, &quot;{\n&quot;);
</span><span class="cx">     push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -3564,7 +3577,7 @@
</span><span class="cx">     push(@implContent, &quot;    else\n&quot;);
</span><span class="cx">     push(@implContent, &quot;        context-&gt;postTask(DeleteCallbackDataTask(m_data));\n&quot;);
</span><span class="cx">     push(@implContent, &quot;#ifndef NDEBUG\n&quot;);
</span><del>-    push(@implContent, &quot;    m_data = 0;\n&quot;);
</del><ins>+    push(@implContent, &quot;    m_data = nullptr;\n&quot;);
</ins><span class="cx">     push(@implContent, &quot;#endif\n&quot;);
</span><span class="cx">     push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -3689,6 +3702,14 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    # toJS() implementation.
+    push(@implContent, &quot;\nJSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, $interfaceName* impl)\n&quot;);
+    push(@implContent, &quot;{\n&quot;);
+    push(@implContent, &quot;    if (!impl || !static_cast&lt;${className}&amp;&gt;(*impl).callbackData())\n&quot;);
+    push(@implContent, &quot;        return jsNull();\n\n&quot;);
+    push(@implContent, &quot;    return static_cast&lt;${className}&amp;&gt;(*impl).callbackData()-&gt;callback();\n\n&quot;);
+    push(@implContent, &quot;}\n&quot;);
+
</ins><span class="cx">     push(@implContent, &quot;\n}\n&quot;);
</span><span class="cx">     my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($interface);
</span><span class="cx">     push(@implContent, &quot;\n#endif // ${conditionalString}\n&quot;) if $conditionalString;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorObjCpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -420,6 +420,7 @@
</span><span class="cx"> {
</span><span class="cx">     my $name = shift;
</span><span class="cx"> 
</span><ins>+    return &quot;NativeNodeFilter&quot; if $name eq &quot;NodeFilter&quot;;
</ins><span class="cx">     return &quot;DOMWindow&quot; if $name eq &quot;AbstractView&quot;;
</span><span class="cx">     return $name;
</span><span class="cx"> }
</span><span class="lines">@@ -693,7 +694,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if ($type eq &quot;NodeFilter&quot;) {
</span><del>-        $implIncludes{&quot;NodeFilter.h&quot;} = 1;
</del><ins>+        $implIncludes{&quot;NativeNodeFilter.h&quot;} = 1;
</ins><span class="cx">         $implIncludes{&quot;ObjCNodeFilterCondition.h&quot;} = 1;
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -1557,7 +1558,7 @@
</span><span class="cx">                 my $paramName = $needsCustom{&quot;NodeFilter&quot;};
</span><span class="cx">                 push(@functionContent, &quot;    RefPtr&lt;WebCore::NodeFilter&gt; nativeNodeFilter;\n&quot;);
</span><span class="cx">                 push(@functionContent, &quot;    if ($paramName)\n&quot;);
</span><del>-                push(@functionContent, &quot;        nativeNodeFilter = WebCore::NodeFilter::create(WebCore::ObjCNodeFilterCondition::create($paramName));\n&quot;);
</del><ins>+                push(@functionContent, &quot;        nativeNodeFilter = WebCore::NativeNodeFilter::create(WebCore::ObjCNodeFilterCondition::create($paramName));\n&quot;);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             push(@parameterNames, &quot;ec&quot;) if $raisesExceptions;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsIDLAttributestxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -73,6 +73,7 @@
</span><span class="cx"> InitializedByEventConstructor
</span><span class="cx"> InterfaceName=*
</span><span class="cx"> IsIndex
</span><ins>+IsWeakCallback
</ins><span class="cx"> JSCustomDefineOwnProperty
</span><span class="cx"> JSCustomDefineOwnPropertyOnPrototype
</span><span class="cx"> JSCustomFinalize
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallbackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> JSTestCallback::JSTestCallback(JSObject* callback, JSDOMGlobalObject* globalObject)
</span><span class="cx">     : TestCallback()
</span><span class="cx">     , ActiveDOMCallback(globalObject-&gt;scriptExecutionContext())
</span><del>-    , m_data(new JSCallbackData(callback, globalObject))
</del><ins>+    , m_data(new JSCallbackDataStrong(callback, this))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     else
</span><span class="cx">         context-&gt;postTask(DeleteCallbackDataTask(m_data));
</span><span class="cx"> #ifndef NDEBUG
</span><del>-    m_data = 0;
</del><ins>+    m_data = nullptr;
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -238,6 +238,15 @@
</span><span class="cx">     return !returnedException;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCallback* impl)
+{
+    if (!impl || !static_cast&lt;JSTestCallback&amp;&gt;(*impl).callbackData())
+        return jsNull();
+
+    return static_cast&lt;JSTestCallback&amp;&gt;(*impl).callbackData()-&gt;callback();
+
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+}
+
</ins><span class="cx"> #endif // ENABLE(SPEECH_SYNTHESIS)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallbackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx">     virtual ScriptExecutionContext* scriptExecutionContext() const { return ContextDestructionObserver::scriptExecutionContext(); }
</span><span class="cx"> 
</span><span class="cx">     virtual ~JSTestCallback();
</span><ins>+    JSCallbackDataStrong* callbackData() { return m_data; }
</ins><span class="cx">     static JSC::JSValue getConstructor(JSC::VM&amp;, JSC::JSGlobalObject*);
</span><span class="cx"> 
</span><span class="cx">     // Functions
</span><span class="lines">@@ -55,9 +56,12 @@
</span><span class="cx"> private:
</span><span class="cx">     JSTestCallback(JSC::JSObject* callback, JSDOMGlobalObject*);
</span><span class="cx"> 
</span><del>-    JSCallbackData* m_data;
</del><ins>+    JSCallbackDataStrong* m_data;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><ins>+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCallback*);
+inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, TestCallback&amp; impl) { return toJS(exec, globalObject, &amp;impl); }
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SPEECH_SYNTHESIS)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallbackFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> JSTestCallbackFunction::JSTestCallbackFunction(JSObject* callback, JSDOMGlobalObject* globalObject)
</span><span class="cx">     : TestCallbackFunction()
</span><span class="cx">     , ActiveDOMCallback(globalObject-&gt;scriptExecutionContext())
</span><del>-    , m_data(new JSCallbackData(callback, globalObject))
</del><ins>+    , m_data(new JSCallbackDataStrong(callback, this))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     else
</span><span class="cx">         context-&gt;postTask(DeleteCallbackDataTask(m_data));
</span><span class="cx"> #ifndef NDEBUG
</span><del>-    m_data = 0;
</del><ins>+    m_data = nullptr;
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -189,6 +189,15 @@
</span><span class="cx">     return !returnedException;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCallbackFunction* impl)
+{
+    if (!impl || !static_cast&lt;JSTestCallbackFunction&amp;&gt;(*impl).callbackData())
+        return jsNull();
+
+    return static_cast&lt;JSTestCallbackFunction&amp;&gt;(*impl).callbackData()-&gt;callback();
+
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+}
+
</ins><span class="cx"> #endif // ENABLE(SPEECH_SYNTHESIS)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallbackFunctionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx">     virtual ScriptExecutionContext* scriptExecutionContext() const { return ContextDestructionObserver::scriptExecutionContext(); }
</span><span class="cx"> 
</span><span class="cx">     virtual ~JSTestCallbackFunction();
</span><ins>+    JSCallbackDataStrong* callbackData() { return m_data; }
</ins><span class="cx"> 
</span><span class="cx">     // Functions
</span><span class="cx">     virtual bool callbackWithNoParam();
</span><span class="lines">@@ -54,9 +55,12 @@
</span><span class="cx"> private:
</span><span class="cx">     JSTestCallbackFunction(JSC::JSObject* callback, JSDOMGlobalObject*);
</span><span class="cx"> 
</span><del>-    JSCallbackData* m_data;
</del><ins>+    JSCallbackDataStrong* m_data;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><ins>+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCallbackFunction*);
+inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, TestCallbackFunction&amp; impl) { return toJS(exec, globalObject, &amp;impl); }
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SPEECH_SYNTHESIS)
</span></span></pre></div>
<a id="trunkSourceWebCoredomDOMAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DOMAllInOne.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DOMAllInOne.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/DOMAllInOne.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -108,7 +108,6 @@
</span><span class="cx"> #include &quot;NamedFlowCollection.cpp&quot;
</span><span class="cx"> #include &quot;NamedNodeMap.cpp&quot;
</span><span class="cx"> #include &quot;Node.cpp&quot;
</span><del>-#include &quot;NodeFilter.cpp&quot;
</del><span class="cx"> #include &quot;NodeFilterCondition.cpp&quot;
</span><span class="cx"> #include &quot;NodeIterator.cpp&quot;
</span><span class="cx"> #include &quot;NodeOrString.cpp&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoredomNativeNodeFiltercpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/dom/NativeNodeFilter.cpp (0 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NativeNodeFilter.cpp                                (rev 0)
+++ trunk/Source/WebCore/dom/NativeNodeFilter.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -0,0 +1,41 @@
</span><ins>+/*
+ * 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 &quot;config.h&quot;
+#include &quot;NativeNodeFilter.h&quot;
+
+namespace WebCore {
+
+NativeNodeFilter::NativeNodeFilter(RefPtr&lt;NodeFilterCondition&gt;&amp;&amp; condition)
+    : m_condition(condition)
+{ }
+
+uint16_t NativeNodeFilter::acceptNode(Node* node)
+{
+    // cast to short silences &quot;enumeral and non-enumeral types in return&quot; warning
+    return m_condition ? m_condition-&gt;acceptNode(node) : static_cast&lt;uint16_t&gt;(FILTER_ACCEPT);
+}
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCoredomNativeNodeFilterh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/dom/NativeNodeFilter.h (0 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NativeNodeFilter.h                                (rev 0)
+++ trunk/Source/WebCore/dom/NativeNodeFilter.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -0,0 +1,61 @@
</span><ins>+/*
+ * 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 &quot;NodeFilter.h&quot;
+#include &quot;NodeFilterCondition.h&quot;
+
+namespace WebCore {
+
+class NativeNodeFilter final : public NodeFilter {
+public:
+    static Ref&lt;NativeNodeFilter&gt; create(RefPtr&lt;NodeFilterCondition&gt;&amp;&amp; condition)
+    {
+        return adoptRef(*new NativeNodeFilter(WTF::move(condition)));
+    }
+
+    static Ref&lt;NativeNodeFilter&gt; create()
+    {
+        return adoptRef(*new NativeNodeFilter());
+    }
+
+    virtual uint16_t acceptNode(Node*) override;
+
+    void setCondition(RefPtr&lt;NodeFilterCondition&gt;&amp;&amp; condition) { ASSERT(!m_condition); m_condition = condition; }
+
+private:
+    explicit NativeNodeFilter(RefPtr&lt;NodeFilterCondition&gt;&amp;&amp;);
+
+    NativeNodeFilter() { }
+
+    RefPtr&lt;NodeFilterCondition&gt; m_condition;
+};
+
+} // namespace WebCore
+
+#endif // NativeNodeFilter_h
+
</ins></span></pre></div>
<a id="trunkSourceWebCoredomNodeFiltercpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/dom/NodeFilter.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeFilter.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/NodeFilter.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -1,38 +0,0 @@
</span><del>-/*
- * 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 &quot;config.h&quot;
-#include &quot;NodeFilter.h&quot;
-
-#include &quot;Node.h&quot;
-
-namespace WebCore {
-
-short NodeFilter::acceptNode(JSC::ExecState* state, Node* node) const
-{
-    // cast to short silences &quot;enumeral and non-enumeral types in return&quot; warning
-    return m_condition ? m_condition-&gt;acceptNode(state, node) : static_cast&lt;short&gt;(FILTER_ACCEPT);
-}
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCoredomNodeFilterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeFilter.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeFilter.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/NodeFilter.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx">  * Copyright (C) 2000 Frederik Holljen (frederik.holljen@hig.no)
</span><span class="cx">  * Copyright (C) 2001 Peter Kelly (pmk@post.com)
</span><span class="cx">  * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
</span><del>- * Copyright (C) 2004, 2008, 2009 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004, 2008, 2009, 2015 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -25,70 +25,50 @@
</span><span class="cx"> #ifndef NodeFilter_h
</span><span class="cx"> #define NodeFilter_h
</span><span class="cx"> 
</span><del>-#include &quot;DOMWrapperWorld.h&quot;
-#include &quot;NodeFilterCondition.h&quot;
</del><ins>+#include &lt;wtf/RefCounted.h&gt;
</ins><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-    class NodeFilter : public RefCounted&lt;NodeFilter&gt; {
-    public:
-        /**
-         * The following constants are returned by the acceptNode()
-         * method:
-         */
-        enum {
-            FILTER_ACCEPT = 1,
-            FILTER_REJECT = 2,
-            FILTER_SKIP   = 3
-        };
</del><ins>+class Node;
</ins><span class="cx"> 
</span><del>-        /**
-         * 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
-        };
</del><ins>+class NodeFilter : public RefCounted&lt;NodeFilter&gt; {
+public:
+    virtual ~NodeFilter() { }
+    virtual uint16_t acceptNode(Node*) = 0;
</ins><span class="cx"> 
</span><del>-        static Ref&lt;NodeFilter&gt; create(PassRefPtr&lt;NodeFilterCondition&gt; condition)
-        {
-            return adoptRef(*new NodeFilter(condition));
-        }
</del><ins>+    /*
+     * The following constants are returned by the acceptNode()
+     * method:
+     */
+    enum {
+        FILTER_ACCEPT = 1,
+        FILTER_REJECT = 2,
+        FILTER_SKIP   = 3
+    };
</ins><span class="cx"> 
</span><del>-        static Ref&lt;NodeFilter&gt; 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&lt;NodeFilterCondition&gt; condition) { ASSERT(!m_condition); m_condition = condition; }
-
-    private:
-        explicit NodeFilter(PassRefPtr&lt;NodeFilterCondition&gt; condition) : m_condition(condition) { }
-        NodeFilter() {}
-
-        RefPtr&lt;NodeFilterCondition&gt; m_condition;
</del><ins>+    /*
+     * 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
</ins><span class="cx">     };
</span><ins>+};
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeFilteridl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeFilter.idl (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeFilter.idl        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/NodeFilter.idl        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -20,16 +20,13 @@
</span><span class="cx"> 
</span><span class="cx"> // Introduced in DOM Level 2:
</span><span class="cx"> [
</span><del>-    JSCustomMarkFunction,
-    JSCustomToNativeObject,
</del><span class="cx">     ObjCProtocol,
</span><del>-    CPPPureInterface,
-    ImplementationLacksVTable,
-] interface NodeFilter {
</del><ins>+    IsWeakCallback,
+] callback interface NodeFilter {
</ins><span class="cx">     // Constants returned by acceptNode
</span><del>-    const short               FILTER_ACCEPT                  = 1;
-    const short               FILTER_REJECT                  = 2;
-    const short               FILTER_SKIP                    = 3;
</del><ins>+    const unsigned short FILTER_ACCEPT = 1;
+    const unsigned short FILTER_REJECT = 2;
+    const unsigned short FILTER_SKIP = 3;
</ins><span class="cx"> 
</span><span class="cx">     // Constants for whatToShow
</span><span class="cx">     const unsigned long       SHOW_ALL                       = 0xFFFFFFFF;
</span><span class="lines">@@ -46,7 +43,10 @@
</span><span class="cx">     const unsigned long       SHOW_DOCUMENT_FRAGMENT         = 0x00000400;
</span><span class="cx">     const unsigned long       SHOW_NOTATION                  = 0x00000800;
</span><span class="cx"> 
</span><del>-    [CallWith=ScriptState] short acceptNode([Default=Undefined] optional Node n);
-
</del><ins>+#if defined(LANGUAGE_OBJECTIVE_C) &amp;&amp; LANGUAGE_OBJECTIVE_C
+    short acceptNode([Default=Undefined] optional Node n);
+#else
+    [Custom] unsigned short acceptNode([Default=Undefined] optional Node n);
+#endif
</ins><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeFilterConditioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeFilterCondition.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeFilterCondition.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/NodeFilterCondition.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-short NodeFilterCondition::acceptNode(JSC::ExecState*, Node*) const
</del><ins>+short NodeFilterCondition::acceptNode(Node*) const
</ins><span class="cx"> {
</span><span class="cx">     return NodeFilter::FILTER_ACCEPT;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeFilterConditionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeFilterCondition.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeFilterCondition.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/NodeFilterCondition.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">     class NodeFilterCondition : public RefCounted&lt;NodeFilterCondition&gt; {
</span><span class="cx">     public:
</span><span class="cx">         virtual ~NodeFilterCondition() { }
</span><del>-        virtual short acceptNode(JSC::ExecState*, Node*) const = 0;
</del><ins>+        virtual short acceptNode(Node*) const = 0;
</ins><span class="cx">         virtual void visitAggregate(JSC::SlotVisitor&amp;) { }
</span><span class="cx">     };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeIterator.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeIterator.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/NodeIterator.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">     root()-&gt;document().detachNodeIterator(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Node&gt; NodeIterator::nextNode(JSC::ExecState* state)
</del><ins>+RefPtr&lt;Node&gt; NodeIterator::nextNode()
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Node&gt; result;
</span><span class="cx"> 
</span><span class="lines">@@ -98,9 +98,7 @@
</span><span class="cx">         // In other words, FILTER_REJECT does not pass over descendants
</span><span class="cx">         // of the rejected node. Hence, FILTER_REJECT is the same as FILTER_SKIP.
</span><span class="cx">         RefPtr&lt;Node&gt; provisionalResult = m_candidateNode.node;
</span><del>-        bool nodeWasAccepted = acceptNode(state, provisionalResult.get()) == NodeFilter::FILTER_ACCEPT;
-        if (state &amp;&amp; state-&gt;hadException())
-            break;
</del><ins>+        bool nodeWasAccepted = acceptNode(provisionalResult.get()) == NodeFilter::FILTER_ACCEPT;
</ins><span class="cx">         if (nodeWasAccepted) {
</span><span class="cx">             m_referenceNode = m_candidateNode;
</span><span class="cx">             result = provisionalResult.release();
</span><span class="lines">@@ -112,7 +110,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Node&gt; NodeIterator::previousNode(JSC::ExecState* state)
</del><ins>+RefPtr&lt;Node&gt; NodeIterator::previousNode()
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Node&gt; result;
</span><span class="cx"> 
</span><span class="lines">@@ -122,9 +120,7 @@
</span><span class="cx">         // In other words, FILTER_REJECT does not pass over descendants
</span><span class="cx">         // of the rejected node. Hence, FILTER_REJECT is the same as FILTER_SKIP.
</span><span class="cx">         RefPtr&lt;Node&gt; provisionalResult = m_candidateNode.node;
</span><del>-        bool nodeWasAccepted = acceptNode(state, provisionalResult.get()) == NodeFilter::FILTER_ACCEPT;
-        if (state &amp;&amp; state-&gt;hadException())
-            break;
</del><ins>+        bool nodeWasAccepted = acceptNode(provisionalResult.get()) == NodeFilter::FILTER_ACCEPT;
</ins><span class="cx">         if (nodeWasAccepted) {
</span><span class="cx">             m_referenceNode = m_candidateNode;
</span><span class="cx">             result = provisionalResult.release();
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeIterator.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeIterator.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/NodeIterator.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -43,8 +43,8 @@
</span><span class="cx">         }
</span><span class="cx">         ~NodeIterator();
</span><span class="cx"> 
</span><del>-        RefPtr&lt;Node&gt; nextNode(JSC::ExecState*);
-        RefPtr&lt;Node&gt; previousNode(JSC::ExecState*);
</del><ins>+        RefPtr&lt;Node&gt; nextNode();
+        RefPtr&lt;Node&gt; previousNode();
</ins><span class="cx">         void detach();
</span><span class="cx"> 
</span><span class="cx">         Node* referenceNode() const { return m_referenceNode.node.get(); }
</span><span class="lines">@@ -53,11 +53,6 @@
</span><span class="cx">         // This function is called before any node is removed from the document tree.
</span><span class="cx">         void nodeWillBeRemoved(Node&amp;);
</span><span class="cx"> 
</span><del>-        // 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&lt;Node&gt; nextNode() { return nextNode(execStateFromNode(mainThreadNormalWorld(), referenceNode())); }
-        RefPtr&lt;Node&gt; previousNode() { return previousNode(execStateFromNode(mainThreadNormalWorld(), referenceNode())); }
-
</del><span class="cx">     private:
</span><span class="cx">         NodeIterator(PassRefPtr&lt;Node&gt;, unsigned long whatToShow, PassRefPtr&lt;NodeFilter&gt;, bool expandEntityReferences);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeIteratoridl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeIterator.idl (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeIterator.idl        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/NodeIterator.idl        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -30,8 +30,8 @@
</span><span class="cx">     readonly attribute Node referenceNode;
</span><span class="cx">     readonly attribute boolean pointerBeforeReferenceNode;
</span><span class="cx"> 
</span><del>-    [CallWith=ScriptState] Node nextNode();
-    [CallWith=ScriptState] Node previousNode();
</del><ins>+    Node nextNode();
+    Node previousNode();
</ins><span class="cx">     void detach();
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomTraversalcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Traversal.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Traversal.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/Traversal.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-short NodeIteratorBase::acceptNode(JSC::ExecState* state, Node* node) const
</del><ins>+short NodeIteratorBase::acceptNode(Node* node) const
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: To handle XML properly we would have to check m_expandEntityReferences.
</span><span class="cx"> 
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">         return NodeFilter::FILTER_SKIP;
</span><span class="cx">     if (!m_filter)
</span><span class="cx">         return NodeFilter::FILTER_ACCEPT;
</span><del>-    return m_filter-&gt;acceptNode(state, node);
</del><ins>+    return m_filter-&gt;acceptNode(node);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoredomTraversalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Traversal.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Traversal.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/Traversal.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> 
</span><span class="cx">     protected:
</span><span class="cx">         NodeIteratorBase(PassRefPtr&lt;Node&gt;, unsigned long whatToShow, PassRefPtr&lt;NodeFilter&gt;, bool expandEntityReferences);
</span><del>-        short acceptNode(JSC::ExecState*, Node*) const;
</del><ins>+        short acceptNode(Node*) const;
</ins><span class="cx"> 
</span><span class="cx">     private:
</span><span class="cx">         RefPtr&lt;Node&gt; m_root;
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeWalkercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeWalker.cpp (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeWalker.cpp        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/TreeWalker.cpp        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -54,28 +54,24 @@
</span><span class="cx">     return m_current.get();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* TreeWalker::parentNode(JSC::ExecState* state)
</del><ins>+Node* TreeWalker::parentNode()
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Node&gt; node = m_current;
</span><span class="cx">     while (node != root()) {
</span><span class="cx">         node = node-&gt;parentNode();
</span><span class="cx">         if (!node)
</span><del>-            return 0;
-        short acceptNodeResult = acceptNode(state, node.get());
-        if (state &amp;&amp; state-&gt;hadException())
-            return 0;
</del><ins>+            return nullptr;
+        short acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">         if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
</span><span class="cx">             return setCurrent(node.release());
</span><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* TreeWalker::firstChild(JSC::ExecState* state)
</del><ins>+Node* TreeWalker::firstChild()
</ins><span class="cx"> {
</span><span class="cx">     for (RefPtr&lt;Node&gt; node = m_current-&gt;firstChild(); node; ) {
</span><del>-        short acceptNodeResult = acceptNode(state, node.get());
-        if (state &amp;&amp; state-&gt;hadException())
-            return 0;
</del><ins>+        short acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">         switch (acceptNodeResult) {
</span><span class="cx">             case NodeFilter::FILTER_ACCEPT:
</span><span class="cx">                 m_current = node.release();
</span><span class="lines">@@ -96,19 +92,17 @@
</span><span class="cx">             }
</span><span class="cx">             ContainerNode* parent = node-&gt;parentNode();
</span><span class="cx">             if (!parent || parent == root() || parent == m_current)
</span><del>-                return 0;
</del><ins>+                return nullptr;
</ins><span class="cx">             node = parent;
</span><span class="cx">         } while (node);
</span><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* TreeWalker::lastChild(JSC::ExecState* state)
</del><ins>+Node* TreeWalker::lastChild()
</ins><span class="cx"> {
</span><span class="cx">     for (RefPtr&lt;Node&gt; node = m_current-&gt;lastChild(); node; ) {
</span><del>-        short acceptNodeResult = acceptNode(state, node.get());
-        if (state &amp;&amp; state-&gt;hadException())
-            return 0;
</del><ins>+        short acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">         switch (acceptNodeResult) {
</span><span class="cx">             case NodeFilter::FILTER_ACCEPT:
</span><span class="cx">                 m_current = node.release();
</span><span class="lines">@@ -129,23 +123,21 @@
</span><span class="cx">             }
</span><span class="cx">             ContainerNode* parent = node-&gt;parentNode();
</span><span class="cx">             if (!parent || parent == root() || parent == m_current)
</span><del>-                return 0;
</del><ins>+                return nullptr;
</ins><span class="cx">             node = parent;
</span><span class="cx">         } while (node);
</span><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* TreeWalker::previousSibling(JSC::ExecState* state)
</del><ins>+Node* TreeWalker::previousSibling()
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Node&gt; node = m_current;
</span><span class="cx">     if (node == root())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     while (1) {
</span><span class="cx">         for (RefPtr&lt;Node&gt; sibling = node-&gt;previousSibling(); sibling; ) {
</span><del>-            short acceptNodeResult = acceptNode(state, sibling.get());
-            if (state &amp;&amp; state-&gt;hadException())
-                return 0;
</del><ins>+            short acceptNodeResult = acceptNode(sibling.get());
</ins><span class="cx">             switch (acceptNodeResult) {
</span><span class="cx">                 case NodeFilter::FILTER_ACCEPT:
</span><span class="cx">                     m_current = sibling.release();
</span><span class="lines">@@ -164,25 +156,21 @@
</span><span class="cx">         }
</span><span class="cx">         node = node-&gt;parentNode();
</span><span class="cx">         if (!node || node == root())
</span><del>-            return 0;
-        short acceptNodeResult = acceptNode(state, node.get());
-        if (state &amp;&amp; state-&gt;hadException())
-            return 0;
</del><ins>+            return nullptr;
+        short acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">         if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
</span><del>-            return 0;
</del><ins>+            return nullptr;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* TreeWalker::nextSibling(JSC::ExecState* state)
</del><ins>+Node* TreeWalker::nextSibling()
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Node&gt; node = m_current;
</span><span class="cx">     if (node == root())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     while (1) {
</span><span class="cx">         for (RefPtr&lt;Node&gt; sibling = node-&gt;nextSibling(); sibling; ) {
</span><del>-            short acceptNodeResult = acceptNode(state, sibling.get());
-            if (state &amp;&amp; state-&gt;hadException())
-                return 0;
</del><ins>+            short acceptNodeResult = acceptNode(sibling.get());
</ins><span class="cx">             switch (acceptNodeResult) {
</span><span class="cx">                 case NodeFilter::FILTER_ACCEPT:
</span><span class="cx">                     m_current = sibling.release();
</span><span class="lines">@@ -201,31 +189,25 @@
</span><span class="cx">         }
</span><span class="cx">         node = node-&gt;parentNode();
</span><span class="cx">         if (!node || node == root())
</span><del>-            return 0;
-        short acceptNodeResult = acceptNode(state, node.get());
-        if (state &amp;&amp; state-&gt;hadException())
-            return 0;
</del><ins>+            return nullptr;
+        short acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">         if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
</span><del>-            return 0;
</del><ins>+            return nullptr;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* TreeWalker::previousNode(JSC::ExecState* state)
</del><ins>+Node* TreeWalker::previousNode()
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Node&gt; node = m_current;
</span><span class="cx">     while (node != root()) {
</span><span class="cx">         while (Node* previousSibling = node-&gt;previousSibling()) {
</span><span class="cx">             node = previousSibling;
</span><del>-            short acceptNodeResult = acceptNode(state, node.get());
-            if (state &amp;&amp; state-&gt;hadException())
-                return 0;
</del><ins>+            short acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">             if (acceptNodeResult == NodeFilter::FILTER_REJECT)
</span><span class="cx">                 continue;
</span><span class="cx">             while (Node* lastChild = node-&gt;lastChild()) {
</span><span class="cx">                 node = lastChild;
</span><del>-                acceptNodeResult = acceptNode(state, node.get());
-                if (state &amp;&amp; state-&gt;hadException())
-                    return 0;
</del><ins>+                acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">                 if (acceptNodeResult == NodeFilter::FILTER_REJECT)
</span><span class="cx">                     break;
</span><span class="cx">             }
</span><span class="lines">@@ -235,29 +217,25 @@
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">         if (node == root())
</span><del>-            return 0;
</del><ins>+            return nullptr;
</ins><span class="cx">         ContainerNode* parent = node-&gt;parentNode();
</span><span class="cx">         if (!parent)
</span><del>-            return 0;
</del><ins>+            return nullptr;
</ins><span class="cx">         node = parent;
</span><del>-        short acceptNodeResult = acceptNode(state, node.get());
-        if (state &amp;&amp; state-&gt;hadException())
-            return 0;
</del><ins>+        short acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">         if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
</span><span class="cx">             return setCurrent(node.release());
</span><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* TreeWalker::nextNode(JSC::ExecState* state)
</del><ins>+Node* TreeWalker::nextNode()
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Node&gt; node = m_current;
</span><span class="cx"> Children:
</span><span class="cx">     while (Node* firstChild = node-&gt;firstChild()) {
</span><span class="cx">         node = firstChild;
</span><del>-        short acceptNodeResult = acceptNode(state, node.get());
-        if (state &amp;&amp; state-&gt;hadException())
-            return nullptr;
</del><ins>+        short acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">         if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
</span><span class="cx">             return setCurrent(node.release());
</span><span class="cx">         if (acceptNodeResult == NodeFilter::FILTER_REJECT)
</span><span class="lines">@@ -265,9 +243,7 @@
</span><span class="cx">     }
</span><span class="cx">     while (Node* nextSibling = NodeTraversal::nextSkippingChildren(*node, root())) {
</span><span class="cx">         node = nextSibling;
</span><del>-        short acceptNodeResult = acceptNode(state, node.get());
-        if (state &amp;&amp; state-&gt;hadException())
-            return nullptr;
</del><ins>+        short acceptNodeResult = acceptNode(node.get());
</ins><span class="cx">         if (acceptNodeResult == NodeFilter::FILTER_ACCEPT)
</span><span class="cx">             return setCurrent(node.release());
</span><span class="cx">         if (acceptNodeResult == NodeFilter::FILTER_SKIP)
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeWalkerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeWalker.h (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeWalker.h        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/TreeWalker.h        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -45,24 +45,14 @@
</span><span class="cx">         Node* currentNode() const { return m_current.get(); }
</span><span class="cx">         void setCurrentNode(PassRefPtr&lt;Node&gt;, ExceptionCode&amp;);
</span><span class="cx"> 
</span><del>-        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*);
</del><ins>+        Node* parentNode();
+        Node* firstChild();
+        Node* lastChild();
+        Node* previousSibling();
+        Node* nextSibling();
+        Node* previousNode();
+        Node* nextNode();
</ins><span class="cx"> 
</span><del>-        // 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())); }
-
</del><span class="cx">     private:
</span><span class="cx">         TreeWalker(PassRefPtr&lt;Node&gt;, unsigned long whatToShow, PassRefPtr&lt;NodeFilter&gt;, bool expandEntityReferences);
</span><span class="cx">         
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeWalkeridl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeWalker.idl (189229 => 189230)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeWalker.idl        2015-09-01 21:31:09 UTC (rev 189229)
+++ trunk/Source/WebCore/dom/TreeWalker.idl        2015-09-01 21:49:44 UTC (rev 189230)
</span><span class="lines">@@ -29,12 +29,12 @@
</span><span class="cx">     readonly attribute boolean expandEntityReferences;        
</span><span class="cx">     [SetterRaisesException] attribute Node currentNode;
</span><span class="cx"> 
</span><del>-    [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();
</del><ins>+    Node parentNode();
+    Node firstChild();
+    Node lastChild();
+    Node previousSibling();
+    Node nextSibling();
+    Node previousNode();
+    Node nextNode();
</ins><span class="cx"> };
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>