This tests that DocumentFragment is constructable.

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


PASS new DocumentFragment().ownerDocument is document
PASS typeof new DocumentFragment is "object"
PASS Object.prototype.toString.call(new DocumentFragment) is "[object DocumentFragment]"
PASS new DocumentFragment instanceof DocumentFragment is true
PASS Object.getPrototypeOf(new DocumentFragment) is DocumentFragment.prototype
PASS new innerWindow.DocumentFragment().ownerDocument is innerDocument
PASS new innerWindow.DocumentFragment instanceof innerWindow.DocumentFragment is true
PASS Object.getPrototypeOf(new innerWindow.DocumentFragment) is innerWindow.DocumentFragment.prototype
PASS successfullyParsed is true

TEST COMPLETE

