<html>
<head>
  <style>
    .box {
      position: relative;
      top: 0;
      left: 0;
      width: 100px;
      height: 100px;
      background-color: blue;
      -webkit-transition-property: transform;
      -webkit-transition-duration: 2s;
      transform: translate(0, 0);
    }
  </style>
  <script>
    if (window.testRunner) {
      testRunner.dumpAsText();
      testRunner.waitUntilDone();
    }

    function test()
    {
      var t = window.getComputedStyle(document.getElementById('box')).transform;
      // grab the x value from the matrix()
      var lastValueRE = /([\.\d]+),[^,]+\)$/;
      var xTranslate = lastValueRE.exec(t)[1];
      var result = (xTranslate > 0) ? 'PASS' : 'FAIL: transition should be re-targeted from 200px in x, so x > 0';
      document.getElementById('result').innerHTML = result;

      if (window.testRunner)
          testRunner.notifyDone();
    }

    function startTest()
    {
      var box = document.getElementById('box');
      box.style.transform = 'translate(200px, 0)';
      
      window.setTimeout(function() {
        box.style.transform = 'translate(0, 200px)';
        window.setTimeout(test, 0);
      }, 300);

    }
  </script>
</head>
<body onload="startTest()">
  <p>Interrupted transition should not jump back to pre-transition transform</p>
  <div id="box" class="box">
  </div>
  <div id="result">
  </div>
</body>
</html>