Test of exception forwarding for NodeIterator and TreeWalker, derived from an early version of Acid3

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

PASS i.nextNode() threw exception Roses.
PASS i.nextNode() is document.documentElement
PASS i.previousNode() threw exception Roses.
PASS w.nextNode() threw exception Roses.
PASS w.nextNode() is document.documentElement.firstChild
PASS w.previousNode() threw exception Roses.
PASS w.firstChild() threw exception Roses.
PASS w.lastChild() threw exception Roses.
PASS w.nextSibling() threw exception Roses.
PASS w.previousSibling() is null
PASS w.nextSibling() is document.body.previousSibling
PASS w.previousSibling() is document.head
PASS iteration is 11
PASS successfullyParsed is true

TEST COMPLETE

