code: function gestureStart(ev) {
      // If we're already touched down, abort
      if (pointer) return;
  
      var now = +Date.now();
  
      // iOS & old android bug: after a touch event, a click event is sent 350 ms later.
      // If <400ms have passed, don't allow an event of a different type than the previous event
      if (lastPointer && !typesMatch(ev, lastPointer) && (now - lastPointer.endTime < 1500)) {
        return;
      }
  
      pointer = makeStartPointer(ev);
  
      runHandlers('start', ev);
    }
docs: /*
  gestureStart vets if a start event is legitimate (and not part of a 'ghost click' from iOS/Android)
  If it is legitimate, we initiate the pointer state and mark the current pointer's type
  For example, for a touchstart event, mark the current pointer as a 'touch' pointer, so mouse events
  won't effect it.