function processBreakingChanges( _, ancestors ) {
		var startCollecting = false;
		var breaking = {
			'title': 'BREAKING CHANGE',
			'text': ''
		};
		var parent = ancestors.pop();
		switch ( parent.type ) {
		case 'summary':
			breaking.text = out.subject;
			break;
		case 'body':
			breaking.text = '';
			visit( parent, [ 'text', 'breaking-change' ], visitBodyNode );
			break;
		case 'token':
			parent = ancestors.pop();
			visit( parent, 'text', visitTextNode );
			break;
		default:
			break;
		}
		if ( breaking.text !== '' ) {
			breakingChanges.push( breaking );
		}

		/**
		* Callback invoked upon visiting a body node.
		*
		* @private
		* @param {Object} node - AST node
		*/
		function visitBodyNode( node ) {
			if ( startCollecting && node.type === 'text' ) {
				if ( breaking.text !== '' ) {
					breaking.text += '\n';
				}
				breaking.text += node.value;
			} else if ( node.type === 'breaking-change' ) {
				startCollecting = true;
			}
		}

		/**
		* Callback invoked upon visiting a text node.
		*
		* @private
		* @param {Object} node - AST node
		*/
		function visitTextNode( node ) {
			breaking.text = node.value;
		}
	}
Callback invoked upon visiting a breaking change node.

@private
@param {Object} _ - AST node
@param {ObjectArray} ancestors - node ancestors