]> source.dussan.org Git - jquery.git/commitdiff
Refactor clone a bit to only create one clone on any given codepath
authortimmywil <timmywillisn@gmail.com>
Tue, 8 Nov 2011 14:48:44 +0000 (09:48 -0500)
committertimmywil <timmywillisn@gmail.com>
Tue, 8 Nov 2011 14:48:57 +0000 (09:48 -0500)
src/manipulation.js
test/unit/manipulation.js

index 00f4172262cfb233d0564de100fdef38dc355284..9baa042033e79e17a55c9eaa717fc81338509cf2 100644 (file)
@@ -578,7 +578,10 @@ jQuery.extend({
                var srcElements,
                        destElements,
                        i,
-                       clone = elem.cloneNode( true );
+                       // IE<=8 does not properly clone detached, unknown element nodes
+                       clone = jQuery.support.html5Clone || !rnoshimcache.test( "<" + elem.nodeName ) ?
+                               elem.cloneNode( true ) :
+                               shimCloneNode( elem );
 
                if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
                                (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
@@ -588,11 +591,6 @@ jQuery.extend({
                        // proprietary methods to clear the events. Thanks to MooTools
                        // guys for this hotness.
 
-                       // IE<=8 does not properly clone detached, unknown element nodes
-                       if ( rnoshimcache.test( "<" + elem.nodeName ) ) {
-                               clone = shimCloneNode( elem );
-                       }
-
                        cloneFixAttributes( elem, clone );
 
                        // Using Sizzle here is crazy slow, so we use getElementsByTagName instead
index fa285030f0af2993b7d49ba00d510823ced446aa..1f028854088c92e2b9e46b42e64e8a86bcf73d37 100644 (file)
@@ -28,10 +28,10 @@ var testText = function(valueObj) {
 
        // Blackberry 4.6 doesn't maintain comments in the DOM
        equal( jQuery("#nonnodes")[0].childNodes.length < 3 ? 8 : j[2].nodeType, 8, "Check node,textnode,comment with text()" );
-}
+};
 
 test("text(String)", function() {
-       testText(bareObj)
+       testText(bareObj);
 });
 
 test("text(Function)", function() {