docs: function abort() {
      var event,
          me = this,
          resetting = calledBy.reset;
  
      if (me.running) {
        event = Event('abort');
        me.emit(event);
        if (!event.cancelled || resetting) {
          // avoid infinite recursion
          calledBy.abort = true;
          me.reset();
          delete calledBy.abort;
  
          if (support.timeout) {
            clearTimeout(me._timerId);
            delete me._timerId;
          }
          if (!resetting) {
            me.aborted = true;
            me.running = false;
          }
        }
      }
      return me;
    }