From 842427a10c69a8952762405d3a20c4a7c3541f90 Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Tue, 6 Mar 2012 13:50:19 -0500 Subject: [PATCH] Rebase: revert fixes in master for #11356; #11323 This reverts commit 619f0d908a4227d4fd49971d7f9a5290eaffd72d. This reverts commit f0732c1e4138342c96e35ff51d5cd681b6cfdb94. This reverts commit 1ff284d2cd67f2f4e7cd8b9577191ba80d521763. --- src/manipulation.js | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/src/manipulation.js b/src/manipulation.js index 0b42810da3..220e09d46e 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -644,8 +644,7 @@ jQuery.extend({ }, clean: function( elems, context, fragment, scripts ) { - var checkScriptType, script, j, - ret = []; + var checkScriptType; context = context || document; @@ -654,6 +653,8 @@ jQuery.extend({ context = context.ownerDocument || context[0] && context[0].ownerDocument || document; } + var ret = [], j; + for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { if ( typeof elem === "number" ) { elem += ""; @@ -675,9 +676,7 @@ jQuery.extend({ var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(), wrap = wrapMap[ tag ] || wrapMap._default, depth = wrap[0], - div = context.createElement("div"), - safeChildNodes = safeFragment.childNodes, - remove; + div = context.createElement("div"); // Append wrapper element to unknown element safe doc fragment if ( context === document ) { @@ -722,21 +721,6 @@ jQuery.extend({ } elem = div.childNodes; - - // Clear elements from DocumentFragment (safeFragment or otherwise) - // to avoid hoarding elements. Fixes #11356 - if ( div ) { - div.parentNode.removeChild( div ); - - // Guard against -1 index exceptions in FF3.6 - if ( safeChildNodes.length > 0 ) { - remove = safeChildNodes[ safeChildNodes.length - 1 ]; - - if ( remove && remove.parentNode ) { - remove.parentNode.removeChild( remove ); - } - } - } } } @@ -765,17 +749,16 @@ jQuery.extend({ return !elem.type || rscriptType.test( elem.type ); }; for ( i = 0; ret[i]; i++ ) { - script = ret[i]; - if ( scripts && jQuery.nodeName( script, "script" ) && (!script.type || rscriptType.test( script.type )) ) { - scripts.push( script.parentNode ? script.parentNode.removeChild( script ) : script ); + if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { + scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); } else { - if ( script.nodeType === 1 ) { - var jsTags = jQuery.grep( script.getElementsByTagName( "script" ), checkScriptType ); + if ( ret[i].nodeType === 1 ) { + var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType ); ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); } - fragment.appendChild( script ); + fragment.appendChild( ret[i] ); } } }