export force.drag instance so user can access it by calling force.drag() with no arguments; the drag events have been namespaced as <event>.force, similar to the other force events: mouseover.force and mouseout.force.
force layout: properly UNSET the .fixed bits: user may be using further bits and those should be kept intact.
Add major & minor extent and step to graticule.

Fixes #1009.
Default graticule step is now 10°. Better tests.
Remove unnecessary argument.
Move tick class to the g element. Fixes #1016.
Enter domain path prior to update transition.

The update transition must be created after the domain path is entered, or else
the entering domain path will not be part of the update transition, and thus
will not have the "d" attribute computed correctly. Fixes #1022. This bug was
introduced by 8ee6c126bcdc3f9965457b411794e9ae7c5972ec to squash a warning!
Simplify d3.random.logNormal. Fixes #787.
Deprecate d3.geo.greatArc; add d3.geo.distance.

Now that D3 supports great-arc interpolation automatically for projections,
there is no need for a great arc feature generator, as a simple LineString
geometry object is equivalent. For the same reason, d3.geo.graticule does not
need to use supersampling on meridians, since meridians are great arcs.

This commit also adds d3.geo.distance(a, b) for computing the length of the
great arc between points a and b in radians, as a replacement for the
deprecated d3.geo.greatArc method, and a faster alternative to constructing a
d3.geo.interpolate solely to measure distance.

Fixes #1021 #1024.
Upgrade dependencies; remove Sizzle dependency.
d3.geo.distance: accuracy for small distances.
Optimise d3.geo.area.

This incorporates two enhancements:

1. A simpler formulation for the area of a spherical triangle with one
   vertex at the south pole.
2. Instead of calling atan2 for every point, we use the identity:
     ∑ arg(z) = arg(∏ z),
   where z is a complex number, and only call atan2 once for each
   polygon, instead opting for a cheaper complex number multiplication
   for each point.

This is around 3x faster than the old implementation as measured by the
included benchmark.
Use captured references for document and window.

This avoids an inconsistency (discussed in #1044) when using D3 inside Node.js,
where D3 internally creates a JSDOM document during initialization, but then
subsequently depends on the current global document, which is not exposed. D3
now always refers to the global document at the time of initialization, and
does not depend on the current global document or window.
Fix rounded format specifier; fixes #1042.
Fix a couple of edge cases.
Fix wheel events; fixes #1048 #1047.

Some time ago the hidden div scroll trick stopped working. But, this went nearly
unnoticed because most browsers are fairly well behaved since WebKit fixed bug
https://bugs.webkit.org/show_bug.cgi?id=40441 back in June 2010. All that
remained broken was Firefox, who adopted the newer W3C "wheel" event standard.
This commit removes the old div hack, and does better support detection to
determine the most standards-based approach to listening for wheel events.
Use µ rather than μ.

That is, MICRO SIGN (\xb5) rather than GREEK SMALL LETTER MU (\u03bc).
Avoid Prototype’s broken array.filter.

While I abhor Prototype’s practice of replacing native methods with broken non-
native ones, this is a painless fix that allows us to use d3.geom.voronoi on
nytimes.com, which shamefully continues to use Prototype.
Bump up line-to-pixel multiplier to 120.
Add test case for tiny Polygon area.