This won’t work because d3_xhr checks the number of arguments that are passed to disambiguate between various overloaded forms:

* d3_xhr(url)
* d3_xhr(url, callback)
* d3_xhr(url, mimeType)
* d3_xhr(url, mimeType, callback)

See the [API reference](https://github.com/mbostock/d3/wiki/Requests#wiki-d3_xhr) for details.

You could splice the d3_text response function into the arguments (creating a copy of the arguments array first using d3_array, since it’s not a real array). Or you might move the fancy argument logic out of d3_xhr and into the new public function, d3.xhr, and therefore require that d3_xhr always be called with all four arguments, some of which may be null. That might require duplicating a bit of logic between d3.xhr and d3.text, but it’s probably the cleanest approach.