code: function detect(eventData) {
      if(!this.current || this.stopped) {
        return;
      }
  
      // extend event data with calculations about scale, distance etc
      eventData = this.extendEventData(eventData);
  
      // instance options
      var inst_options = this.current.inst.options;
  
      // call Hammer.gesture handlers
      Hammer.utils.each(this.gestures, function(gesture) {
        // only when the instance options have enabled this gesture
        if(!this.stopped && inst_options[gesture.name] !== false) {
          // if a handler returns false, we stop with the detection
          if(gesture.handler.call(gesture, eventData, this.current.inst) === false) {
            this.stopDetect();
            return false;
          }
        }
      }, this);
  
      // store as previous event event
      if(this.current) {
        this.current.lastEvent = eventData;
      }
  
      // endevent, but not the last touch, so dont stop
      if(eventData.eventType == Hammer.EVENT_END && !eventData.touches.length - 1) {
        this.stopDetect();
      }
  
      return eventData;
    }
docs: Hammer.gesture detection
  @param   {Object}    eventData