<p>
    Test for <i><a href="https://bugs.webkit.org/attachment.cgi?id=30159">https://bugs.webkit.org/attachment.cgi?id=30159</a>
    Assertion failure in Node::setDocument()
    (willMoveToNewOwnerDocumentWasCalled) when adopting a &lt;form> element</i>.
</p>
<p>
    The test passed if the assertion did not fail.
</p>
<form id="target"></form>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();

    var otherDocument = document.implementation.createHTMLDocument();
    otherDocument.adoptNode(document.getElementById("target"));
</script>
