<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  </head>
  <body id="bodyRoot">
    <svg xmlns="http://www.w3.org/2000/svg">
      <defs>
        <clipPath id="clipClip">
          <rect>
          </rect>
        </clipPath>
        <clipPath clip-path="url(#clipClip)">
          <circle>
          </circle>
        </clipPath>
       </defs>
       <rect>
       </rect>
     </svg>
   </body>
   <script>
     if (window.testRunner) {
       testRunner.waitUntilDone();
       testRunner.dumpAsText();
     }

     document.addEventListener("DOMContentLoaded", initCrash, false);

     function initCrash() {
       var bodyRoot = document.getElementById("bodyRoot");
       try { document.implementation.createDocument("", "", null).adoptNode(bodyRoot); } catch(e) {}
       try { bodyRoot.textContent = "" } catch(e) {}
       document.documentElement.innerHTML = "PASS";

       if (window.testRunner)
         testRunner.notifyDone();
     }
   </script>
</html>

