From f31aeb97f12dcb78d41ff9140e8fde7056ffd55d Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Wed, 29 Apr 2015 03:19:01 +0000 Subject: [PATCH] Emoji: fix loop when replacement images fail to load. Props iseulde. Fixes #32128 for trunk. git-svn-id: https://develop.svn.wordpress.org/trunk@32323 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/js/wp-emoji.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/wp-includes/js/wp-emoji.js b/src/wp-includes/js/wp-emoji.js index 0ff3c6f677..47076c95ea 100644 --- a/src/wp-includes/js/wp-emoji.js +++ b/src/wp-includes/js/wp-emoji.js @@ -61,13 +61,24 @@ if ( MutationObserver ) { new MutationObserver( function( mutationRecords ) { var i = mutationRecords.length, - ii, node; + addedNodes, removedNodes, ii, node; while ( i-- ) { - ii = mutationRecords[ i ].addedNodes.length; + addedNodes = mutationRecords[ i ].addedNodes; + removedNodes = mutationRecords[ i ].removedNodes; + ii = addedNodes.length; + + if ( + ii === 1 && removedNodes.length === 1 && + addedNodes[0].nodeType === 3 && + removedNodes[0].nodeName === 'IMG' && + addedNodes[0].data === removedNodes[0].alt + ) { + return; + } while ( ii-- ) { - node = mutationRecords[ i ].addedNodes[ ii ]; + node = addedNodes[ ii ]; if ( node.nodeType === 3 ) { node = node.parentNode;