Show More
Commit Description:
change logger to be limited by file size
Commit Description:
change logger to be limited by file size
References:
File last commit:
Show/Diff file:
Action:
node_modules/jquery/src/manipulation/buildFragment.js
| 106 lines
| 2.4 KiB
| application/javascript
| JavascriptLexer
|
r789 | define( [ | |||
"../core", | ||||
"../core/toType", | ||||
"../core/isAttached", | ||||
"./var/rtagName", | ||||
"./var/rscriptType", | ||||
"./wrapMap", | ||||
"./getAll", | ||||
"./setGlobalEval" | ||||
], function( jQuery, toType, isAttached, rtagName, rscriptType, wrapMap, getAll, setGlobalEval ) { | ||||
"use strict"; | ||||
var rhtml = /<|&#?\w+;/; | ||||
function buildFragment( elems, context, scripts, selection, ignored ) { | ||||
var elem, tmp, tag, wrap, attached, j, | ||||
fragment = context.createDocumentFragment(), | ||||
nodes = [], | ||||
i = 0, | ||||
l = elems.length; | ||||
for ( ; i < l; i++ ) { | ||||
elem = elems[ i ]; | ||||
if ( elem || elem === 0 ) { | ||||
// Add nodes directly | ||||
if ( toType( elem ) === "object" ) { | ||||
// Support: Android <=4.0 only, PhantomJS 1 only | ||||
// push.apply(_, arraylike) throws on ancient WebKit | ||||
jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); | ||||
// Convert non-html into a text node | ||||
} else if ( !rhtml.test( elem ) ) { | ||||
nodes.push( context.createTextNode( elem ) ); | ||||
// Convert html into DOM nodes | ||||
} else { | ||||
tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); | ||||
// Deserialize a standard representation | ||||
tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); | ||||
wrap = wrapMap[ tag ] || wrapMap._default; | ||||
tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; | ||||
// Descend through wrappers to the right content | ||||
j = wrap[ 0 ]; | ||||
while ( j-- ) { | ||||
tmp = tmp.lastChild; | ||||
} | ||||
// Support: Android <=4.0 only, PhantomJS 1 only | ||||
// push.apply(_, arraylike) throws on ancient WebKit | ||||
jQuery.merge( nodes, tmp.childNodes ); | ||||
// Remember the top-level container | ||||
tmp = fragment.firstChild; | ||||
// Ensure the created nodes are orphaned (#12392) | ||||
tmp.textContent = ""; | ||||
} | ||||
} | ||||
} | ||||
// Remove wrapper from fragment | ||||
fragment.textContent = ""; | ||||
i = 0; | ||||
while ( ( elem = nodes[ i++ ] ) ) { | ||||
// Skip elements already in the context collection (trac-4087) | ||||
if ( selection && jQuery.inArray( elem, selection ) > -1 ) { | ||||
if ( ignored ) { | ||||
ignored.push( elem ); | ||||
} | ||||
continue; | ||||
} | ||||
attached = isAttached( elem ); | ||||
// Append to fragment | ||||
tmp = getAll( fragment.appendChild( elem ), "script" ); | ||||
// Preserve script evaluation history | ||||
if ( attached ) { | ||||
setGlobalEval( tmp ); | ||||
} | ||||
// Capture executables | ||||
if ( scripts ) { | ||||
j = 0; | ||||
while ( ( elem = tmp[ j++ ] ) ) { | ||||
if ( rscriptType.test( elem.type || "" ) ) { | ||||
scripts.push( elem ); | ||||
} | ||||
} | ||||
} | ||||
} | ||||
return fragment; | ||||
} | ||||
return buildFragment; | ||||
} ); | ||||