Skip to content

Commit 1ff284d

Browse files
rwaldrondmethvin
authored andcommitted
Fix #11356. Avoid hoarding elements in DocumentFragments.
1 parent 5cae50e commit 1ff284d

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/manipulation.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,9 @@ jQuery.extend({
676676
var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
677677
wrap = wrapMap[ tag ] || wrapMap._default,
678678
depth = wrap[0],
679-
div = context.createElement("div");
679+
div = context.createElement("div"),
680+
safeChildNodes = safeFragment.childNodes,
681+
remove;
680682

681683
// Append wrapper element to unknown element safe doc fragment
682684
if ( context === document ) {
@@ -721,6 +723,17 @@ jQuery.extend({
721723
}
722724

723725
elem = div.childNodes;
726+
727+
// Clear elements from DocumentFragment (safeFragment or otherwise)
728+
// to avoid hoarding elements. Fixes #11356
729+
if ( div ) {
730+
div.parentNode.removeChild( div );
731+
remove = safeChildNodes[ safeChildNodes.length - 1 ];
732+
733+
if ( remove && remove.parentNode ) {
734+
remove.parentNode.removeChild( remove );
735+
}
736+
}
724737
}
725738
}
726739

0 commit comments

Comments
 (0)