<!-- Test for WK90750 - this should not crash or say FAIL. -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <set id="set"></set>
    <text id="status" x="100" y="100">FAIL</text>
    <script xlink:href="../../resources/js-test-pre.js"></script>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }

        if (location.hash != "#done") {
            setTimeout(function() {
                document.getElementById("set").setAttribute("attributeName", "points");
                document.implementation.createDocument("", "", null).adoptNode(document.getElementById("set"));
                location.hash = "#done";
                window.location.reload();
            }, 0);
        } else {
            if (window.testRunner)
                gc();
            document.getElementById("status").textContent = "PASS";
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</svg>
