Fix #13282: QtWebKit (e.g., phantomjs) can only apply Arrays

This commit is contained in:
Richard Gibson 2013-01-24 23:45:44 -05:00
parent f39ca223e0
commit fb0f295292

View File

@ -303,7 +303,9 @@ jQuery.fn.extend({
// Keep references to cloned scripts for later restoration
if ( hasScripts ) {
core_push.apply( scripts, getAll( node, "script" ) );
// Support: QtWebKit
// jQuery.merge because core_push.apply(_, arraylike) throws
jQuery.merge( scripts, getAll( node, "script" ) );
}
}
@ -369,7 +371,9 @@ jQuery.each({
elems = i === last ? this : this.clone( true );
jQuery( insert[ i ] )[ original ]( elems );
core_push.apply( ret, elems );
// Support: QtWebKit
// .get() because core_push.apply(_, arraylike) throws
core_push.apply( ret, elems.get() );
}
return this.pushStack( ret );
@ -433,7 +437,9 @@ jQuery.extend({
// Add nodes directly
if ( jQuery.type( elem ) === "object" ) {
core_push.apply( nodes, elem.nodeType ? [ elem ] : elem );
// Support: QtWebKit
// jQuery.merge because core_push.apply(_, arraylike) throws
jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
// Convert non-html into a text node
} else if ( !rhtml.test( elem ) ) {
@ -454,7 +460,9 @@ jQuery.extend({
tmp = tmp.firstChild;
}
core_push.apply( nodes, tmp.childNodes );
// Support: QtWebKit
// jQuery.merge because core_push.apply(_, arraylike) throws
jQuery.merge( nodes, tmp.childNodes );
// Remember the top-level container
tmp = fragment.firstChild;