Commit 5c3b9e0c authored by rwldrn's avatar rwldrn

jQuery.clone() check that destination child nodes are not null. Fixes #9587

parent d59b0f3e
...@@ -564,7 +564,10 @@ jQuery.extend({ ...@@ -564,7 +564,10 @@ jQuery.extend({
// with an element if you are cloning the body and one of the // with an element if you are cloning the body and one of the
// elements on the page has a name or id of "length" // elements on the page has a name or id of "length"
for ( i = 0; srcElements[i]; ++i ) { for ( i = 0; srcElements[i]; ++i ) {
cloneFixAttributes( srcElements[i], destElements[i] ); // Ensure that the destination node is not null; Fixes #9587
if ( destElements[i] ) {
cloneFixAttributes( srcElements[i], destElements[i] );
}
} }
} }
...@@ -762,4 +765,4 @@ function evalScript( i, elem ) { ...@@ -762,4 +765,4 @@ function evalScript( i, elem ) {
} }
} }
})( jQuery ); })( jQuery );
\ No newline at end of file
...@@ -281,6 +281,8 @@ Z</textarea> ...@@ -281,6 +281,8 @@ Z</textarea>
</div> </div>
<div id="fx-tests"></div> <div id="fx-tests"></div>
<div id="no-clone-exception"><object><embed></embed></object></div>
</div> </div>
</body> </body>
</html> </html>
...@@ -1465,3 +1465,14 @@ test("jQuery.buildFragment - plain objects are not a document #8950", function() ...@@ -1465,3 +1465,14 @@ test("jQuery.buildFragment - plain objects are not a document #8950", function()
} catch (e) {} } catch (e) {}
}); });
test("jQuery.clone - no exceptions for object elements #9587", function() {
expect(1);
try {
jQuery("#no-clone-exception").clone();
ok( true, "cloned with no exceptions" );
} catch( e ) {
ok( false, e.message );
}
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment