From b418fa1f0937b5c92085778b0e935f94dcf46dbd Mon Sep 17 00:00:00 2001 From: timmywil Date: Mon, 2 Jul 2012 11:30:22 -0400 Subject: [PATCH] UPDATE SIZZLE: completed rewrite for better things! Remove reverse in traversing for comma selectors. Sizzle's handling of commas is now more consistent. --- src/sizzle | 2 +- src/traversing.js | 6 ++---- test/unit/css.js | 3 +++ test/unit/effects.js | 18 ++++++++++++++---- test/unit/event.js | 14 +++++++------- test/unit/manipulation.js | 2 ++ 6 files changed, 29 insertions(+), 16 deletions(-) diff --git a/src/sizzle b/src/sizzle index 2ae520aa9..e89d06c41 160000 --- a/src/sizzle +++ b/src/sizzle @@ -1 +1 @@ -Subproject commit 2ae520aa9b7fdc18798df25948191dae69e33ace +Subproject commit e89d06c4134ec439e52382acd0e569e97fed7ebc diff --git a/src/traversing.js b/src/traversing.js index 0cca81a0a..4a68ccb5e 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -1,7 +1,5 @@ var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, isSimple = /^.[^:#\[\.,]*$/, POS = jQuery.expr.match.globalPOS, // methods guaranteed to produce a unique set when starting from a unique set @@ -217,7 +215,7 @@ jQuery.each({ ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + if ( this.length > 1 && rparentsprev.test( name ) ) { ret = ret.reverse(); } diff --git a/test/unit/css.js b/test/unit/css.js index d968775e0..208353777 100644 --- a/test/unit/css.js +++ b/test/unit/css.js @@ -547,14 +547,17 @@ test( "show() resolves correct default display, detached nodes (#10006)", functi div = jQuery("
"); div.show().appendTo("#qunit-fixture"); ok( !!div.get( 0 ).style.display, "Make sure not hidden div has a inline style." ); + div.remove(); div = jQuery( document.createElement("div") ); div.show().appendTo("#qunit-fixture"); equal( div.css("display"), "block", "Make sure a pre-created element has default display." ); + div.remove(); div = jQuery("
"); div.show().appendTo("#qunit-fixture"); equal( div.css("display"), "inline", "Make sure that element has same display when it was created." ); + div.remove(); }); test("toggle()", function() { diff --git a/test/unit/effects.js b/test/unit/effects.js index 392d7e74b..3ca00951f 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -95,6 +95,8 @@ test("show()", function() { equal( elem.css("display"), expected, "Show using correct display type for " + selector ); }); + jQuery("#show-tests").remove(); + // Make sure that showing or hiding a text node doesn't cause an error jQuery("
test
text test").show().remove(); jQuery("
test
text test").hide().remove(); @@ -137,6 +139,8 @@ test("show(Number) - other displays", function() { } }); }); + + jQuery("#show-tests").remove(); }); @@ -726,6 +730,7 @@ jQuery.checkOverflowDisplay = function(){ equal(o, "visible", "Overflow should be visible: " + o); equal(jQuery.css( this, "display" ), "inline", "Display shouldn't be tampered with."); + jQuery(this).remove(); start(); }; @@ -779,6 +784,8 @@ test( "jQuery.fx.prototype.cur() - <1.8 Back Compat", 7, function() { -11000, "support negative values < -10000 (bug #7193)" ); + + jQuery( div ).remove(); }); test("JS Overflow and Display", function() { @@ -1352,10 +1359,10 @@ test("animate will scale margin properties individually", function() { // clean up for next test foo.css({ - marginLeft: '', - marginRight: '', - marginTop: '', - marginBottom: '' + marginLeft: "", + marginRight: "", + marginTop: "", + marginBottom: "" }); start(); }); @@ -1365,6 +1372,7 @@ test("Do not append px to 'fill-opacity' #9548", 1, function() { $div.css("fill-opacity", 0).animate({ "fill-opacity": 1.0 }, 0, function () { equal( jQuery(this).css("fill-opacity"), 1, "Do not append px to 'fill-opacity'"); + $div.remove(); }); }); @@ -1532,6 +1540,7 @@ asyncTest( "hide called on element within hidden parent should set display to no strictEqual( elems.get( 1 ).style.display, "none", "hide( 0 ) called on element within hidden parent should set display to none" ); strictEqual( elems.get( 2 ).style.display, "none", "hide( 1 ) called on element within hidden parent should set display to none" ); + elems.remove(); start(); }); }); @@ -1661,6 +1670,7 @@ asyncTest( "animate does not change start value for non-px animation (#7109)", 1 var ratio = computed[ 0 ] / actual; ok( ratio > 0.9 && ratio < 1.1 , "Starting width was close enough" ); next(); + parent.remove(); start(); }); }); diff --git a/test/unit/event.js b/test/unit/event.js index 479509ffb..44f7e7f1e 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -38,7 +38,7 @@ test("Handler changes and .trigger() order", function() { expect(1); var markup = jQuery( - '

b

' + "

b

" ), path = ""; @@ -1433,7 +1433,7 @@ test("jQuery.Event( type, props )", function() { test("jQuery.Event.currentTarget", function(){ expect(2); - jQuery('

') + jQuery("

") .on( "click", "p", function( e ){ equal( e.currentTarget, this, "Check delegated currentTarget on event" ); }) @@ -2359,7 +2359,7 @@ test( "delegated event with delegateTarget-relative selector (#)", function() { test("stopPropagation() stops directly-bound events on delegated target", function() { expect(1); - var markup = jQuery( '

target

' ); + var markup = jQuery("

target

"); markup .on( "click", function() { ok( false, "directly-bound event on delegate target was called" ); @@ -2540,7 +2540,7 @@ test("Non DOM element events", function() { test("inline handler returning false stops default", function() { expect(1); - var markup = jQuery('
x
'); + var markup = jQuery("
x
"); markup.click(function(e) { ok( e.isDefaultPrevented(), "inline handler prevented default"); return false; @@ -2613,7 +2613,7 @@ test(".on and .off", function() { expect(9); var counter, mixfn; - jQuery( '

onandoff

workedorborked?
' ).appendTo( 'body' ); + var $onandoff = jQuery("

onandoff

workedorborked?
").appendTo("body"); // Simple case jQuery( "#onandoff" ) @@ -2705,7 +2705,7 @@ test(".on and .off", function() { var data = jQuery.data[ jQuery( "#onandoff" )[0].expando ] || {}; equal( data.events, undefined, "no events left" ); - jQuery("#onandoff").remove(); + $onandoff.remove(); }); test("special bind/delegate name mapping", function() { @@ -2723,7 +2723,7 @@ test("special bind/delegate name mapping", function() { ok( true, "event " + event.type + " triggered" ); }; - jQuery( '
' ) + jQuery("
") .on( "slap", "button", jQuery.noop ) .on( "swing", "button", comeback ) .find( "button" ) diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js index 5e0607646..d43e4d247 100644 --- a/test/unit/manipulation.js +++ b/test/unit/manipulation.js @@ -37,6 +37,8 @@ test("text()", function() { var $newLineTest = jQuery("
test
testy
").appendTo("#moretests"); $newLineTest.find("br").replaceWith("\n"); equal( $newLineTest.text(), "test\ntesty", "text() does not remove new lines (#11153)" ); + + $newLineTest.remove(); }); test("text(undefined)", function() {