code: function extendEventData(ev) {
      var cur = this.current,
          startEv = cur.startEvent,
          lastEv = cur.lastEvent || startEv;
  
      // update the start touchlist to calculate the scale/rotation
      if (ev.eventType == EVENT_TOUCH || ev.eventType == EVENT_RELEASE) {
        startEv.touches = [];
        Utils.each(ev.touches, function(touch) {
          startEv.touches.push({
            clientX: touch.clientX,
            clientY: touch.clientY
          });
        });
      }
  
      var deltaTime = ev.timeStamp - startEv.timeStamp,
          deltaX = ev.center.clientX - startEv.center.clientX,
          deltaY = ev.center.clientY - startEv.center.clientY;
  
      this.getCalculatedData(ev, lastEv.center, deltaTime, deltaX, deltaY);
  
      Utils.extend(ev, {
        startEvent: startEv,
  
        deltaTime: deltaTime,
        deltaX: deltaX,
        deltaY: deltaY,
  
        distance: Utils.getDistance(startEv.center, ev.center),
        angle: Utils.getAngle(startEv.center, ev.center),
        direction: Utils.getDirection(startEv.center, ev.center),
        scale: Utils.getScale(startEv.touches, ev.touches),
        rotation: Utils.getRotation(startEv.touches, ev.touches)
      });
  
      return ev;
    }
docs: extend eventData for GestureDetector.gestures
  @param {Object} ev
  @return {Object} ev