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.