<!DOCTYPE html>
<html>
<head>
  <script type="text/javascript">
    if (window.testRunner)
        testRunner.waitUntilDone();

    onload = function() {
        // Do test _after_ onload to make sure that the time container
        // has begun.
        window.setTimeout(function() {
            document.querySelector('svg').setCurrentTime(0.5);
            document.body.innerHTML = 'PASS: Test did not hang.';
            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.notifyDone();
            }
        }, 0);
    };
  </script>
</head>
<body>
  <p>This test passes if it does not hang...</p>
  <svg xmlns="http://www.w3.org/2000/svg">
    <circle r="10" cx="50" cy="50" fill="none">
      <animate id="anim1" attributeName="opacity" from="0" to="1" begin="0.1s; anim3.end" dur="0.01s"/>
      <animate id="anim2" attributeName="opacity" from="1" to="1" begin="anim1.end" dur="0.05s" fill="freeze"/>
      <animate id="anim3" attributeName="opacity" from="1" to="0" begin="anim2.end" dur="0.01s" fill="freeze"/>
    </circle>
  </svg>
</body>
</html>
