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.
		
		
		
		
		
			
		
			
				
					21 lines
				
				543 B
			
		
		
			
		
	
	
					21 lines
				
				543 B
			| 
								 
											3 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Does a constant-time string comparison by not short-circuiting
							 | 
						||
| 
								 | 
							
								 * on first sign of non-equivalency.
							 | 
						||
| 
								 | 
							
								 * 
							 | 
						||
| 
								 | 
							
								 * @param {String} a The first string to be compared against the second
							 | 
						||
| 
								 | 
							
								 * @param {String} b The second string to be compared against the first 
							 | 
						||
| 
								 | 
							
								 * @return {Boolean}
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								module.exports = function scmp(a, b) {
							 | 
						||
| 
								 | 
							
								  a = String(a);
							 | 
						||
| 
								 | 
							
								  b = String(b);
							 | 
						||
| 
								 | 
							
								  if (a.length !== b.length) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  var result = 0;
							 | 
						||
| 
								 | 
							
								  for (var i = 0; i < a.length; ++i) {
							 | 
						||
| 
								 | 
							
								    result |= a.charCodeAt(i) ^ b.charCodeAt(i);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return result === 0;
							 | 
						||
| 
								 | 
							
								};
							 |