When d3.js is loaded, it now prefers the AMD define function or module.exports
if available; the global `d3` is only set if neither of these are available. A
side benefit of this change is that browserify, bower and component can now load
the D3 library directly rather than needing a custom definition.
In some cases IE9 processes the opening of an XDomainRequest synchronously, so
by the time we were setting the response function to parse the DSV file, it was
too late. So instead we use the internal d3_xhr method to set the response
function before the request is sent. This is a continuation of fix#1260.
IE doesn’t support __proto__ patching, so if the selection.prototype.transition
method isn’t yet defined at the time d3_selectionRoot is defined, it won’t
inherit the method when the prototype is patched later! This restores the
original order of dependencies so that the transition method is defined before
d3_selectionRoot is created.
This reverts commit b7f5f30570079fa78dc2bd44b40b7622d713adff, which broke the
behavior of the axis component for ordinal scales by changing the meaning of
rangeBand.
Since 3.1, the Mercator projection does not clamp y-values. For rendering
latitudes near the pole, the y-values can approach infinity. Rather than
clamping each point in the projection, d3.geo.mercator now sets the clipExtent
automatically (if not overridden) using the projection's scale and translate.