]> source.dussan.org Git - jquery.git/commitdiff
Fix #13282: QtWebKit (e.g., phantomjs) can only apply Arrays
authorRichard Gibson <richard.gibson@gmail.com>
Fri, 25 Jan 2013 04:45:44 +0000 (23:45 -0500)
committerRichard Gibson <richard.gibson@gmail.com>
Fri, 25 Jan 2013 04:45:44 +0000 (23:45 -0500)
src/manipulation.js

index 9a2b3db66a5a7ee714f272ec46d064ba4a80cbcd..9b70db7f3c29cc41bacd11b303565481e359677c 100644 (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;