madrobby/zepto — pull request #660 by zertosh (2012-12-13 00:10:33+00:00)
Title: fixes to $.ajaxJSONP

When making **JSONP** requests:
1. `settings.beforeSend` wasn't being called.
2. The `ajaxBeforeSend` and `ajaxError` events weren't being fired.
3. There was inconsistent behavior with timeouts between `$.ajax` and `$.ajaxJSONP`. In `$.ajax` when there is a timeout, `ajaxError` is called and that subsequentely calls `ajaxComplete`. In `$.ajaxJSONP`, a timeout skips `ajaxError` and calls `ajaxComplete` twice. First with a status of *abort* and then again with a status of *timeout*.
4. When the request is aborted either by (1) calling `xhr.abort()` or (2) because of a timeout, or (3) the request raises an `onerror` event, the global `window[callbackName]` is set to `function empty () {}` instead of deleting it. So the global scope stays polluted and `empty()` retains a reference to `