chromium/third_party/blink/web_tests/svg/dom/animated-tearoff-lifespan.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html 
xmlns="http://www.w3.org/1999/xhtml" 
xmlns:xlink="http://www.w3.org/1999/xlink"
>
<body>
  <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
    <rect width="100" height="100" fill="blue" />
    <rect id="rect" x="10" y="10" width="100" height="100" fill="red" />
 </svg>
 
<div id="log"></div>
<script type="text/javascript"><![CDATA[

  if (window.testRunner)
    testRunner.dumpAsText();

  function debugLog(s) {
    var logDiv = document.getElementById("log");
    logDiv.appendChild(document.createTextNode(s));
    logDiv.appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "br"));
  }

  var x1;
  var x2;
  
  {
    var rect = document.getElementById("rect");
    x1 = rect.x;
    x2 = rect.x;
    debugLog("x1: " + x1);
    debugLog("x2: " + x2);
    debugLog("x1.baseVal : " + x1.baseVal);
    debugLog("x2.baseVal : " + x2.baseVal);
    debugLog("x1.baseVal.value : " + x1.baseVal.value);
    debugLog("x2.baseVal.value : " + x2.baseVal.value);
    debugLog("x1 == x2: " + (x1 == x2));
    debugLog("x1 === x2: " + (x1 === x2));
    debugLog("x1.baseVal == x2.baseVal: " + (x1.baseVal == x2.baseVal));
    debugLog("x1.baseVal === x2.baseVal: " + (x1.baseVal === x2.baseVal));

    debugLog("removing rect from document");
    rect.parentNode.removeChild(rect);
  }

  debugLog("x1: " + x1);
  debugLog("x2: " + x2);
  debugLog("x1.baseVal : " + x1.baseVal);
  debugLog("x2.baseVal : " + x2.baseVal);
  debugLog("x1.baseVal.value : " + x1.baseVal.value);
  debugLog("x2.baseVal.value : " + x2.baseVal.value);
  debugLog("x1 == x2: " + (x1 == x2));
  debugLog("x1 === x2: " + (x1 === x2));
  debugLog("x1.baseVal == x2.baseVal: " + (x1.baseVal == x2.baseVal));
  debugLog("x1.baseVal === x2.baseVal: " + (x1.baseVal === x2.baseVal));
  
  debugLog("modifying, x1.baseVal = 100");
  try {
    x1.baseVal.value = 100;
  } catch(e) {
    debugLog("x1.baseVal = 100 threw exception: " + e);
  }
  
  debugLog("x1: " + x1);
  debugLog("x2: " + x2);
  debugLog("x1.baseVal : " + x1.baseVal);
  debugLog("x2.baseVal : " + x2.baseVal);
  debugLog("x1.baseVal.value : " + x1.baseVal.value);
  debugLog("x2.baseVal.value : " + x2.baseVal.value);
  debugLog("x1 == x2: " + (x1 == x2));
  debugLog("x1 === x2: " + (x1 === x2));
  debugLog("x1.baseVal == x2.baseVal: " + (x1.baseVal == x2.baseVal));
  debugLog("x1.baseVal === x2.baseVal: " + (x1.baseVal === x2.baseVal));
  
]]></script>
</body>
</html>