function done( error, results ) {
		var args;
		var i;
		if ( DONE ) {
			debug( 'Command already finished. Command callback called more than once.' );
			if ( error ) {
				debug( 'Error: %s', error.message );
			}
			if ( arguments.length > 1 ) {
				debug( 'Results: %s', JSON.stringify( results ) );
			}
			return;
		}
		// Update the internal flag indicating whether a command has finished executing (which is important within the context of `SIGINT` event handling):
		DONE = true;

		// If the command ran synchronously, defer resolution of the results until the next tick of the event loop...
		if ( SYNC ) {
			debug( 'Asynchronous command executed synchronously.' );
			args = [];
			for ( i = 0; i < arguments.length; i++ ) {
				args.push( arguments[ i ] );
			}
			nextTick( defer );
			return;
		}
		// Update the cache of saved regular expression substring matches:
		updateRegExpCache( repl._regexp );

		if ( error ) {
			debug( 'Error: %s', error.message );
			repl._ostream.write( 'Error: '+error.message+'\n' );
			repl.emit( 'command', code.raw, false ); // command failed
			displayPrompt( repl, false );

			// Indicate that command execution has completed:
			repl._busy = false;

			// Clear the command queue, as an error may cause downstream "dependencies" to not be fulfilled, etc:
			repl._queue.clear();

			return;
		}
		// Cache the result:
		repl._ans = [ res, results ];

		if ( code.silent === false && ( res !== void 0 || results !== void 0 ) ) { // eslint-disable-line max-len
			pre = replace( repl._outputPrompt, '%d', (repl._count+1).toString() );

			// TODO: pretty printing (can defer to `util.inspect` for now, but will invariably want more control over this later, possibly including default configuration, etc, either at startup, during runtime, or according to an external configuration file)
			repl._ostream.write( pre+inspect( repl._ans )+'\n' );
		}
		// Finish processing:
		beforeNextTick();

		/**
		* Callback invoked upon the next tick of the event loop.
		*
		* @private
		*/
		function defer() {
			done.apply( null, args );
		}
	}
Callback invoked when a command finishes.

@private
@param {(Error|null)} [error] - error
@param {*} [results] - results
@returns {void}