<!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>
