src/mousetracker.js
/**
     * Note: Called for both pointer events and legacy mouse events
     *         ($.MouseTracker.havePointerEvents determines which)
     *
     * @private
     * @inner
     */
Called for both pointer events and legacy mouse events
($.MouseTracker.havePointerEvents determines which)

@private
@inner
Called for both pointer events and legacy mouse events ( $ . MouseTracker . havePointerEvents determines which ) @private @inner
function handlePointerUp( tracker, event ) {
        var gPoint;
        gPoint = {
            id: getPointerId( event ),
            type: getPointerType( event ),
            isPrimary: getIsPrimary( event ),
            currentPos: getMouseAbsolute( event ),
            currentTime: $.now()
        };
        var eventInfo = {
            originalEvent: event,
            eventType: 'pointerup',
            pointerType: gPoint.type,
            isEmulated: false
        };
        preProcessEvent( tracker, eventInfo );
        updatePointerUp( tracker, eventInfo, gPoint, event.button );
        if ( eventInfo.preventDefault && !eventInfo.defaultPrevented ) {
            $.cancelEvent( event );
        }
        if ( eventInfo.stopPropagation ) {
            $.stopEvent( event );
        }
        if ( eventInfo.shouldReleaseCapture ) {
            if ( event.target === tracker.element ) {
                releasePointer( tracker, gPoint );
            } else {
                updatePointerCaptured( tracker, gPoint, false );
            }
        }
    }
function handlePointerUp ( tracker , event ) { var gPoint ; gPoint = { id : getPointerId ( event ) , type : getPointerType ( event ) , isPrimary : getIsPrimary ( event ) , currentPos : getMouseAbsolute ( event ) , currentTime : $ . now ( ) } ; var eventInfo = { originalEvent : event , eventType : 'pointerup' , pointerType : gPoint . type , isEmulated : false } ; preProcessEvent ( tracker , eventInfo ) ; updatePointerUp ( tracker , eventInfo , gPoint , event . button ) ; if ( eventInfo . preventDefault && ! eventInfo . defaultPrevented ) { $ . cancelEvent ( event ) ; } if ( eventInfo . stopPropagation ) { $ . stopEvent ( event ) ; } if ( eventInfo . shouldReleaseCapture ) { if ( event . target === tracker . element ) { releasePointer ( tracker , gPoint ) ; } else { updatePointerCaptured ( tracker , gPoint , false ) ; } } }
Note: Called for both pointer events and legacy mouse events
         ($.MouseTracker.havePointerEvents determines which)
Note : Called for both pointer events and legacy mouse events ( $ . MouseTracker . havePointerEvents determines which )
//$.console.log('pointerup ' + (tracker.userData ? tracker.userData.toString() : '') + ' ' + (event.target === tracker.element ? 'tracker.element' : '')); // Per spec, pointerup events are supposed to release capture. Not all browser //   versions have adhered to the spec, and there's no harm in releasing //   explicitly