Fix #11356. Avoid hoarding elements in DocumentFragments.

This commit is contained in:
Rick Waldron 2012-03-02 12:03:32 -05:00 committed by Dave Methvin
parent 5cae50e66e
commit 1ff284d2cd

View File

@ -676,7 +676,9 @@ jQuery.extend({
var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(), var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
wrap = wrapMap[ tag ] || wrapMap._default, wrap = wrapMap[ tag ] || wrapMap._default,
depth = wrap[0], depth = wrap[0],
div = context.createElement("div"); div = context.createElement("div"),
safeChildNodes = safeFragment.childNodes,
remove;
// Append wrapper element to unknown element safe doc fragment // Append wrapper element to unknown element safe doc fragment
if ( context === document ) { if ( context === document ) {
@ -721,6 +723,17 @@ jQuery.extend({
} }
elem = div.childNodes; elem = div.childNodes;
// Clear elements from DocumentFragment (safeFragment or otherwise)
// to avoid hoarding elements. Fixes #11356
if ( div ) {
div.parentNode.removeChild( div );
remove = safeChildNodes[ safeChildNodes.length - 1 ];
if ( remove && remove.parentNode ) {
remove.parentNode.removeChild( remove );
}
}
} }
} }