8 ], function( jQuery, rtagName, rscriptType, wrapMap, getAll, setGlobalEval ) {
12 var rhtml = /<|&#?\w+;/;
14 function buildFragment( elems, context, scripts, selection, ignored ) {
15 var elem, tmp, tag, wrap, contains, j,
16 fragment = context.createDocumentFragment(),
21 for ( ; i < l; i++ ) {
24 if ( elem || elem === 0 ) {
27 if ( jQuery.type( elem ) === "object" ) {
29 // Support: Android <=4.0 only, PhantomJS 1 only
30 // push.apply(_, arraylike) throws on ancient WebKit
31 jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
33 // Convert non-html into a text node
34 } else if ( !rhtml.test( elem ) ) {
35 nodes.push( context.createTextNode( elem ) );
37 // Convert html into DOM nodes
39 tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
41 // Deserialize a standard representation
42 tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
43 wrap = wrapMap[ tag ] || wrapMap._default;
44 tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
46 // Descend through wrappers to the right content
52 // Support: Android <=4.0 only, PhantomJS 1 only
53 // push.apply(_, arraylike) throws on ancient WebKit
54 jQuery.merge( nodes, tmp.childNodes );
56 // Remember the top-level container
57 tmp = fragment.firstChild;
59 // Ensure the created nodes are orphaned (#12392)
65 // Remove wrapper from fragment
66 fragment.textContent = "";
69 while ( ( elem = nodes[ i++ ] ) ) {
71 // Skip elements already in the context collection (trac-4087)
72 if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
79 contains = jQuery.contains( elem.ownerDocument, elem );
82 tmp = getAll( fragment.appendChild( elem ), "script" );
84 // Preserve script evaluation history
89 // Capture executables
92 while ( ( elem = tmp[ j++ ] ) ) {
93 if ( rscriptType.test( elem.type || "" ) ) {
103 return buildFragment;