It was previously possible for small differences in the reference time for subtransitions. This could lead to tearing with expensive transitions, as some transitions would have slightly different reference times than the others. This is fixed by passing the reference time along explicitly when deriving a new transition, either by the transition or selection operators.
The d3.time.format.iso is designed to be compatible with the default JSON serialization of dates, which includes milliseconds. So, d3.time.format now supports the %L directive for formatting and parsing milliseconds. This commit also changes d3.time.format.iso to use native ISO date methods, if available.
d3.geom.polygon(…).area() assumes screen pixel coordinates with (0, 0) at the top left, and y increasing going downwards. This results in a positive area for counterclockwise coordinates. Howver, the default centroid calculation was assuming "usual" Cartesian coordinates with y increasing going upwards, hence the centroid coordinates were incorrectly multiplied by -1. This fix won't affect d3.geo.path(…).centroid() as it passes a constant to d3.geom.centroid.
This occurs on Linux, where the directory listing order is different from OS X and so other tests leave data bound to the "body" element. This data is then propagated when new elements are appended, and thus mess up some of the tests!