Tests the basic functionality of the `children` property on ParentNode.

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


PASS document.children is an instance of HTMLCollection
PASS document.documentElement.children is an instance of HTMLCollection
PASS document.createDocumentFragment().children is an instance of HTMLCollection
PASS document.children.length is 1
PASS document.children[0] is document.documentElement
PASS document.documentElement.children.length is 2
PASS document.documentElement.children[0] is document.head
PASS document.documentElement.children[1] is document.body
PASS documentFragment.children.length is 2
PASS documentFragment.children[0] is child1
PASS documentFragment.children[1] is child2
PASS successfullyParsed is true

TEST COMPLETE

