<?xml version="1.0"?>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/licenses/publicdomain/
-->
<svg xmlns="http://www.w3.org/2000/svg">
  <title>Test that suspendRedraw doesn't apply after the end of a script</title>
  <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=734079 -->

  <script>
  
    function doTest() {
      var svg = document.documentElement;
      svg.suspendRedraw(10000);
      svg.removeChild(document.getElementById("r"));
      svg.removeAttribute("class");
      if (window.testRunner)
        testRunner.notifyDone();
    }
    
    if (window.testRunner)
      testRunner.waitUntilDone();

    setTimeout(doTest, 100);

  </script>
  <rect width="100%" height="100%" fill="lime"/>
  <rect id="r" width="100%" height="100%" fill="red"/>
</svg>
