public/ckeditor/4.4dev/core/htmldataprocessor.js
function maybeBogus( node, atBlockEnd ) {

			// BR that's not from IE<11 DOM, except for a EOL marker.
			if ( !( isOutput && !CKEDITOR.env.needsBrFiller ) &&
					node.type == CKEDITOR.NODE_ELEMENT && node.name == 'br' &&
					!node.attributes[ 'data-cke-eol' ] ) {
				return true;
			}

			var match;

			// NBSP, possibly.
			if ( node.type == CKEDITOR.NODE_TEXT && ( match = node.value.match( tailNbspRegex ) ) ) {
				// We need to separate tail NBSP out of a text node, for later removal.
				if ( match.index ) {
					( new CKEDITOR.htmlParser.text( node.value.substring( 0, match.index ) ) ).insertBefore( node );
					node.value = match[ 0 ];
				}

				// From IE<11 DOM, at the end of a text block, or before block boundary.
				if ( !CKEDITOR.env.needsBrFiller && isOutput && ( !atBlockEnd || node.parent.name in textBlockTags ) )
					return true;

				// From the output.
				if ( !isOutput ) {
					var previous = node.previous;

					// Following a line-break at the end of block.
					if ( previous && previous.name == 'br' )
						return true;

					// Or a single NBSP between two blocks.
					if ( !previous || isBlockBoundary( previous ) )
						return true;
				}
			}

			return false;
		}
function maybeBogus( node, atBlockEnd ) {

			// BR that's not from IE<11 DOM, except for a EOL marker.
			if ( !( isOutput && !CKEDITOR.env.needsBrFiller ) &&
					node.type == CKEDITOR.NODE_ELEMENT && node.name == 'br' &&
					!node.attributes[ 'data-cke-eol' ] ) {
				return true;
			}

			var match;

			// NBSP, possibly.
			if ( node.type == CKEDITOR.NODE_TEXT && ( match = node.value.match( tailNbspRegex ) ) ) {
				// We need to separate tail NBSP out of a text node, for later removal.
				if ( match.index ) {
					( new CKEDITOR.htmlParser.text( node.value.substring( 0, match.index ) ) ).insertBefore( node );
					node.value = match[ 0 ];
				}

				// From IE<11 DOM, at the end of a text block, or before block boundary.
				if ( !CKEDITOR.env.needsBrFiller && isOutput && ( !atBlockEnd || node.parent.name in textBlockTags ) )
					return true;

				// From the output.
				if ( !isOutput ) {
					var previous = node.previous;

					// Following a line-break at the end of block.
					if ( previous && previous.name == 'br' )
						return true;

					// Or a single NBSP between two blocks.
					if ( !previous || isBlockBoundary( previous ) )
						return true;
				}
			}

			return false;
		}
function maybeBogus ( node , atBlockEnd ) { // BR that's not from IE<11 DOM, except for a EOL marker. if ( ! ( isOutput && ! CKEDITOR . env . needsBrFiller ) && node . type == CKEDITOR . NODE_ELEMENT && node . name == 'br' && ! node . attributes [ 'data-cke-eol' ] ) { return true ; } var match ; // NBSP, possibly. if ( node . type == CKEDITOR . NODE_TEXT && ( match = node . value . match ( tailNbspRegex ) ) ) { // We need to separate tail NBSP out of a text node, for later removal. if ( match . index ) { ( new CKEDITOR . htmlParser . text ( node . value . substring ( 0 , match . index ) ) ) . insertBefore ( node ) ; node . value = match [ 0 ] ; } // From IE<11 DOM, at the end of a text block, or before block boundary. if ( ! CKEDITOR . env . needsBrFiller && isOutput && ( ! atBlockEnd || node . parent . name in textBlockTags ) ) return true ; // From the output. if ( ! isOutput ) { var previous = node . previous ; // Following a line-break at the end of block. if ( previous && previous . name == 'br' ) return true ; // Or a single NBSP between two blocks. if ( ! previous || isBlockBoundary ( previous ) ) return true ; } } return false ; }
Determinate whether this node is potentially a bogus node.
Determinate whether this node is potentially a bogus node .