code: function(input) {
          var self = this;
          var state = this.state;
  
          function emit(event) {
              self.manager.emit(event, input);
          }
  
          // 'panstart' and 'panmove'
          if (state < STATE_ENDED) {
              emit(self.options.event + stateStr(state));
          }
  
          emit(self.options.event); // simple 'eventName' events
  
          if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)
              emit(input.additionalEvent);
          }
  
          // panend and pancancel
          if (state >= STATE_ENDED) {
              emit(self.options.event + stateStr(state));
          }
      }
docs: You should use `tryEmit` instead of `emit` directly to check
  that all the needed recognizers has failed before emitting.
  @param {Object} input