mbostock/d3 — pull request #1507 by mbostock (2013-09-05 17:33:52+00:00)
Title: If present, use changedTouches[0] for d3.mouse.

Normally d3.mouse(this) is equivalent to d3.touches(this)[0] because the clientX and clientY properties of the event and the first touch are the same. However, on touchend the touches list is empty, and the clientX and clientY are 0! So instead it seems safer to use the position of the first changed touch for the default location of a touch event.