<head>
  <div>PASS</div>
  <svg xmlns="http://www.w3.org/2000/svg">
    <g>
      <set attributename="class"></set>
    </g>
    <script type="text/javascript">
      if (window.testRunner)
        testRunner.dumpAsText();
    </script>
  </svg>
</head>
