code: function( a, b ) {
  		// Flag for duplicate removal
  		if ( a === b ) {
  			selector_hasDuplicate = true;
  			return 0;
  		}
  
  		var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );
  
  		if ( compare ) {
  			// Disconnected nodes
  			if ( compare & 1 ) {
  
  				// Choose the first element that is related to our document
  				if ( a === document || jQuery.contains(document, a) ) {
  					return -1;
  				}
  				if ( b === document || jQuery.contains(document, b) ) {
  					return 1;
  				}
  
  				// Maintain original order
  				return 0;
  			}
  
  			return compare & 4 ? -1 : 1;
  		}
  
  		// Not directly comparable, sort on existence of method
  		return a.compareDocumentPosition ? -1 : 1;
  	}
docs: /*
  Optional (non-Sizzle) selector module for custom builds.
  
  Note that this DOES NOT SUPPORT many documented jQuery
  features in exchange for its smaller size:
  
  Attribute not equal selector
  Positional selectors (:first; :eq(n); :odd; etc.)
  Type selectors (:input; :checkbox; :button; etc.)
  State-based selectors (:animated; :visible; :hidden; etc.)
  :has(selector)
  :not(complex selector)
  custom selectors via Sizzle extensions
  Leading combinators (e.g., $collection.find("> *"))
  Reliable functionality on XML fragments
  Requiring all parts of a selector to match elements under context
  (e.g., $div.find("div > *") now matches children of $div)
  Matching against non-elements
  Reliable sorting of disconnected nodes
  querySelectorAll bug fixes (e.g., unreliable :focus on WebKit)
  
  If any of these are unacceptable tradeoffs, either use Sizzle or
  customize this stub for the project's specific needs.