A follow-up to [6578] (which stopped adding expandos to elements that didn't have...
[jquery.git] / src / selector.js
index 64222c3..de8830a 100644 (file)
@@ -144,6 +144,8 @@ Sizzle.uniqueSort = function(results){
                        }
                }
        }
+
+       return results;
 };
 
 Sizzle.matches = function(expr, set){
@@ -703,6 +705,13 @@ var sortOrder;
 
 if ( document.documentElement.compareDocumentPosition ) {
        sortOrder = function( a, b ) {
+               if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+                       if ( a == b ) {
+                               hasDuplicate = true;
+                       }
+                       return 0;
+               }
+
                var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
                if ( ret === 0 ) {
                        hasDuplicate = true;
@@ -711,6 +720,13 @@ if ( document.documentElement.compareDocumentPosition ) {
        };
 } else if ( "sourceIndex" in document.documentElement ) {
        sortOrder = function( a, b ) {
+               if ( !a.sourceIndex || !b.sourceIndex ) {
+                       if ( a == b ) {
+                               hasDuplicate = true;
+                       }
+                       return 0;
+               }
+
                var ret = a.sourceIndex - b.sourceIndex;
                if ( ret === 0 ) {
                        hasDuplicate = true;
@@ -719,6 +735,13 @@ if ( document.documentElement.compareDocumentPosition ) {
        };
 } else if ( document.createRange ) {
        sortOrder = function( a, b ) {
+               if ( !a.ownerDocument || !b.ownerDocument ) {
+                       if ( a == b ) {
+                               hasDuplicate = true;
+                       }
+                       return 0;
+               }
+
                var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
                aRange.selectNode(a);
                aRange.collapse(true);
@@ -1036,6 +1059,8 @@ jQuery.sibling = function(n, elem){
        return r;
 };
 
+jQuery.unique = Sizzle.uniqueSort;
+
 return;
 
 window.Sizzle = Sizzle;