code: function determineEventTypes() {
      var types;
      if (GestureDetector.HAS_POINTEREVENTS) {
        if (window.PointerEvent) {
          types = [
            'pointerdown',
            'pointermove',
            'pointerup pointercancel lostpointercapture'
          ];
        } else {
          types = [
            'MSPointerDown',
            'MSPointerMove',
            'MSPointerUp MSPointerCancel MSLostPointerCapture'
          ];
        }
      } else if (GestureDetector.NO_MOUSEEVENTS) {
        types = [
          'touchstart',
          'touchmove',
          'touchend touchcancel'
        ];
      } else {
        types = [
          'touchstart mousedown',
          'touchmove mousemove',
          'touchend touchcancel mouseup'
        ];
      }
  
      EVENT_TYPES[EVENT_START] = types[0];
      EVENT_TYPES[EVENT_MOVE] = types[1];
      EVENT_TYPES[EVENT_END] = types[2];
      return EVENT_TYPES;
    }
docs: we have different events for each device/browser
  determine what we need and set them in the EVENT_TYPES constant
  the `onTouch` method is bind to these properties.
  @return {Object} events