public/ckeditor/4.4dev/plugins/undo/plugin.js
function( evt ) {
			var undoManager = this.undoManager,
				keyCode = evt.data.getKey(),
				totalInputs = this.keyEventsStack.getTotalInputs();

			// Remove record from stack for provided key code.
			this.keyEventsStack.remove( keyCode );

			// Second part of the workaround for IEs functional keys bug. We need to check whether something has really
			// changed because we blindly mocked the keypress event.
			// Also we need to be aware that lastKeydownImage might not be available (#12327).
			if ( UndoManager.ieFunctionalKeysBug( keyCode ) && this.lastKeydownImage &&
				this.lastKeydownImage.equalsContent( new Image( undoManager.editor, true ) ) ) {
				return;
			}

			if ( totalInputs > 0 ) {
				undoManager.type( keyCode );
			} else if ( UndoManager.isNavigationKey( keyCode ) ) {
				// Note content snapshot has been checked in keydown.
				this.onNavigationKey( true );
			}
		}
function( evt ) {
			var undoManager = this.undoManager,
				keyCode = evt.data.getKey(),
				totalInputs = this.keyEventsStack.getTotalInputs();

			// Remove record from stack for provided key code.
			this.keyEventsStack.remove( keyCode );

			// Second part of the workaround for IEs functional keys bug. We need to check whether something has really
			// changed because we blindly mocked the keypress event.
			// Also we need to be aware that lastKeydownImage might not be available (#12327).
			if ( UndoManager.ieFunctionalKeysBug( keyCode ) && this.lastKeydownImage &&
				this.lastKeydownImage.equalsContent( new Image( undoManager.editor, true ) ) ) {
				return;
			}

			if ( totalInputs > 0 ) {
				undoManager.type( keyCode );
			} else if ( UndoManager.isNavigationKey( keyCode ) ) {
				// Note content snapshot has been checked in keydown.
				this.onNavigationKey( true );
			}
		}
function ( evt ) { var undoManager = this . undoManager , keyCode = evt . data . getKey ( ) , totalInputs = this . keyEventsStack . getTotalInputs ( ) ; // Remove record from stack for provided key code.
 this . keyEventsStack . remove ( keyCode ) ; // Second part of the workaround for IEs functional keys bug. We need to check whether something has really
 // changed because we blindly mocked the keypress event.
 // Also we need to be aware that lastKeydownImage might not be available (#12327).
 if ( UndoManager . ieFunctionalKeysBug ( keyCode ) && this . lastKeydownImage && this . lastKeydownImage . equalsContent ( new Image ( undoManager . editor , true ) ) ) { return ; } if ( totalInputs > 0 ) { undoManager . type ( keyCode ) ; } else if ( UndoManager . isNavigationKey ( keyCode ) ) { // Note content snapshot has been checked in keydown.
 this . onNavigationKey ( true ) ; } }
The `keyup` event listener.

@param {CKEDITOR.dom.event} evt
The keyup event listener .