You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					42 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					42 lines
				
				1.3 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								var isSymbol = require('./isSymbol');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Compares values to sort them in ascending order.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @private
							 | 
						||
| 
								 | 
							
								 * @param {*} value The value to compare.
							 | 
						||
| 
								 | 
							
								 * @param {*} other The other value to compare.
							 | 
						||
| 
								 | 
							
								 * @returns {number} Returns the sort order indicator for `value`.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function compareAscending(value, other) {
							 | 
						||
| 
								 | 
							
								  if (value !== other) {
							 | 
						||
| 
								 | 
							
								    var valIsDefined = value !== undefined,
							 | 
						||
| 
								 | 
							
								        valIsNull = value === null,
							 | 
						||
| 
								 | 
							
								        valIsReflexive = value === value,
							 | 
						||
| 
								 | 
							
								        valIsSymbol = isSymbol(value);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var othIsDefined = other !== undefined,
							 | 
						||
| 
								 | 
							
								        othIsNull = other === null,
							 | 
						||
| 
								 | 
							
								        othIsReflexive = other === other,
							 | 
						||
| 
								 | 
							
								        othIsSymbol = isSymbol(other);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||
							 | 
						||
| 
								 | 
							
								        (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||
							 | 
						||
| 
								 | 
							
								        (valIsNull && othIsDefined && othIsReflexive) ||
							 | 
						||
| 
								 | 
							
								        (!valIsDefined && othIsReflexive) ||
							 | 
						||
| 
								 | 
							
								        !valIsReflexive) {
							 | 
						||
| 
								 | 
							
								      return 1;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||
							 | 
						||
| 
								 | 
							
								        (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||
							 | 
						||
| 
								 | 
							
								        (othIsNull && valIsDefined && valIsReflexive) ||
							 | 
						||
| 
								 | 
							
								        (!othIsDefined && valIsReflexive) ||
							 | 
						||
| 
								 | 
							
								        !othIsReflexive) {
							 | 
						||
| 
								 | 
							
								      return -1;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return 0;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = compareAscending;
							 |