code: function( evt ) {
  			// Block undo/redo keystrokes when at the bottom/top of the undo stack (#11126 and #11677).
  			if ( CKEDITOR.tools.indexOf( keystrokes, evt.data.getKeystroke() ) > -1 ) {
  				evt.data.preventDefault();
  				return;
  			}
  
  			// Cleaning tab functional keys.
  			this.keyEventsStack.cleanUp( evt );
  
  			var keyCode = evt.data.getKey(),
  				undoManager = this.undoManager;
  
  			// Gets last record for provided keyCode. If not found will create one.
  			var last = this.keyEventsStack.getLast( keyCode );
  			if ( !last ) {
  				this.keyEventsStack.push( keyCode );
  			}
  
  			// We need to store an image which will be used in case of key group
  			// change.
  			this.lastKeydownImage = new Image( undoManager.editor );
  
  			if ( UndoManager.isNavigationKey( keyCode ) || this.undoManager.keyGroupChanged( keyCode ) ) {
  				if ( undoManager.strokesRecorded[ 0 ] || undoManager.strokesRecorded[ 1 ] ) {
  					// We already have image, so we'd like to reuse it.
  					undoManager.save( false, this.lastKeydownImage );
  					undoManager.resetType();
  				}
  			}
  		}
docs: The `keydown` event listener.
  
  @param {CKEDITOR.dom.event} evt