<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Round-trip large values</title>
  <style type="text/css" media="screen">
    #box {
      position: absolute;
    }
  </style>
</head>
<body>
<div id="box">
</div>
<div id="results">
</div>
<script type="text/javascript" charset="utf-8">
  if (window.testRunner)
    testRunner.dumpAsText();
    
  var output = [];

  function test(value)
  {
    var box = document.getElementById('box');

    var testValue = value + "px";
    box.style.left = testValue;

    var leftValue = window.getComputedStyle(box, null).left;

    box.style.left = "0px";
    box.style.left = leftValue;
    var newLeftValue = window.getComputedStyle(box, null).left;

    var results = document.getElementById('results');
    var result;
    if (leftValue == newLeftValue)
      output.push("PASS: read " + testValue + " back as " + leftValue + ", read again as " + newLeftValue);
    else
      output.push("FAIL: read " + testValue + " back as " + leftValue + ", read again as " + newLeftValue);
  }
  
  test(90010000);
  test(-33554430);
  test(-90010000);
  
  document.getElementById('results').innerHTML = output.join('<br>');
</script>
</body>
</html>
