38 lines
		
	
	
		
			768 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			768 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// original sourc
 | 
						|
// https://github.com/rackt/react-redux/blob/master/src/utils/shallowEqual.js
 | 
						|
// MIT license
 | 
						|
export default function shallowEqual(objA, objB) {
 | 
						|
  if (objA === objB) {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
 | 
						|
  if (
 | 
						|
    typeof objA !== 'object' ||
 | 
						|
    objA === null ||
 | 
						|
    typeof objB !== 'object' ||
 | 
						|
    objB === null
 | 
						|
  ) {
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
 | 
						|
  var keysA = Object.keys(objA);
 | 
						|
  var keysB = Object.keys(objB);
 | 
						|
 | 
						|
  if (keysA.length !== keysB.length) {
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
 | 
						|
  // Test for A's keys different from B.
 | 
						|
  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
 | 
						|
  for (var i = 0; i < keysA.length; i++) {
 | 
						|
    if (
 | 
						|
      !bHasOwnProperty(keysA[i]) ||
 | 
						|
      objA[keysA[i]] !== objB[keysA[i]]
 | 
						|
    ) {
 | 
						|
      return false;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return true;
 | 
						|
}
 |