This is rendered using putImageData only (see code below). On a retina display, the animating square leaves gribblies in some browsers. By clicking, the square jumps, and the browser (not the JS code!) is clearing a larger rectangle, revealing the actual canvas backing store is indeed clean. Similarly, changing the page zoom temporarily clears the gribblies.
Judging from the symptoms I'd say the fix would be to enlarge the damage rectangle for putImageData by 1 pixel in all directions.
Bug status (June 2016):
Code: