Skip to content

Commit

Permalink
Brought back the compareDocumentPosition code. While it is redundant …
Browse files Browse the repository at this point in the history
…in Firefox it's much faster than using indexOf.
  • Loading branch information
jeresig committed Feb 17, 2009
1 parent 8d9aa01 commit 4b7e1c9
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
12 changes: 10 additions & 2 deletions src/selector.js
Expand Up @@ -684,7 +684,15 @@ try {

var sortOrder;

if ( Array.prototype.indexOf ) {
if ( document.documentElement.compareDocumentPosition ) {
sortOrder = function( a, b ) {
var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
if ( ret === 0 ) {
hasDuplicate = true;
}
return ret;
};
} else if ( Array.prototype.indexOf ) {
var indexOf = Array.prototype.indexOf,
allSort = document.getElementsByTagName("*");

Expand All @@ -695,7 +703,7 @@ if ( Array.prototype.indexOf ) {
}
return ret;
};
} else if ( document.documentElement.sourceIndex === 1 ) {
} else if ( "sourceIndex" in document.documentElement ) {
sortOrder = function( a, b ) {
var ret = a.sourceIndex - b.sourceIndex;
if ( ret === 0 ) {
Expand Down
4 changes: 2 additions & 2 deletions test/unit/selector.js
@@ -1,7 +1,7 @@
module("selector");

test("element", function() {
expect(17);
expect(18);
reset();

ok( jQuery("*").size() >= 30, "Select all" );
Expand All @@ -25,7 +25,7 @@ test("element", function() {
ok( jQuery("#lengthtest input").length, '<input name="length"> cannot be found under IE, see #945' );

// Check for unique-ness and sort order
//isSet( jQuery("*"), jQuery("*, *"), "Check for duplicates: *, *" );
isSet( jQuery("*"), jQuery("*, *"), "Check for duplicates: *, *" );
isSet( jQuery("p"), jQuery("p, div p"), "Check for duplicates: p, div p" );

t( "Checking sort order", "h2, h1", ["header", "banner", "userAgent"] );
Expand Down

0 comments on commit 4b7e1c9

Please sign in to comment.