Skip to content
Permalink
Browse files

UPDATE SIZZLE: completed rewrite for better things!

Remove reverse in traversing for comma selectors. Sizzle's handling of commas is now more consistent.
  • Loading branch information
timmywil committed Jul 2, 2012
1 parent f71a6ec commit b418fa1f0937b5c92085778b0e935f94dcf46dbd
Showing with 29 additions and 16 deletions.
  1. +1 −1 src/sizzle
  2. +2 −4 src/traversing.js
  3. +3 −0 test/unit/css.js
  4. +14 −4 test/unit/effects.js
  5. +7 −7 test/unit/event.js
  6. +2 −0 test/unit/manipulation.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();
}

@@ -547,14 +547,17 @@ test( "show() resolves correct default display, detached nodes (#10006)", functi
div = jQuery("<div>");
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 style='display: inline'/>");
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() {
@@ -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("<div>test</div> text <span>test</span>").show().remove();
jQuery("<div>test</div> text <span>test</span>").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();
});
});
@@ -38,7 +38,7 @@ test("Handler changes and .trigger() order", function() {
expect(1);

var markup = jQuery(
'<div><div><p><span><b class="a">b</b></span></p></div></div>'
"<div><div><p><span><b class=\"a\">b</b></span></p></div></div>"
),
path = "";

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

jQuery('<div><p><button>shiny</button></p></div>')
jQuery("<div><p><button>shiny</button></p></div>")
.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( '<div><p><a href="#">target</a></p></div>' );
var markup = jQuery("<div><p><a href=\"#\">target</a></p></div>");
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('<div><a href="#" onclick="return false">x</a></div>');
var markup = jQuery("<div><a href=\"#\" onclick=\"return false\">x</a></div>");
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( '<div id="onandoff"><p>on<b>and</b>off</p><div>worked<em>or</em>borked?</div></div>' ).appendTo( 'body' );
var $onandoff = jQuery("<div id=\"onandoff\"><p>on<b>and</b>off</p><div>worked<em>or</em>borked?</div></div>").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( '<div><button id="mammy">Are We Not Men?</button></div>' )
jQuery("<div><button id=\"mammy\">Are We Not Men?</button></div>")
.on( "slap", "button", jQuery.noop )
.on( "swing", "button", comeback )
.find( "button" )
@@ -37,6 +37,8 @@ test("text()", function() {
var $newLineTest = jQuery("<div>test<br/>testy</div>").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() {

0 comments on commit b418fa1

Please sign in to comment.
You can’t perform that action at this time.