stickshift.js
function shallowEqual(objA, objB) {
  if (objA === objB) {
    return true;
  }
  var key;
  // Test for A's keys different from B.
  for (key in objA) {
    if (objA.hasOwnProperty(key) &&
        (!objB.hasOwnProperty(key) || objA[key] !== objB[key])) {
      return false;
    }
  }
  // Test for B's keys missing from A.
  for (key in objB) {
    if (objB.hasOwnProperty(key) && !objA.hasOwnProperty(key)) {
      return false;
    }
  }
  return true;
}
function shallowEqual(objA, objB) {
  if (objA === objB) {
    return true;
  }
  var key;
  // Test for A's keys different from B.
  for (key in objA) {
    if (objA.hasOwnProperty(key) &&
        (!objB.hasOwnProperty(key) || objA[key] !== objB[key])) {
      return false;
    }
  }
  // Test for B's keys missing from A.
  for (key in objB) {
    if (objB.hasOwnProperty(key) && !objA.hasOwnProperty(key)) {
      return false;
    }
  }
  return true;
}
function shallowEqual ( objA , objB ) { if ( objA === objB ) { return true ; } var key ; // Test for A's keys different from B. for ( key in objA ) { if ( objA . hasOwnProperty ( key ) && ( ! objB . hasOwnProperty ( key ) || objA [ key ] !== objB [ key ] ) ) { return false ; } } // Test for B's keys missing from A. for ( key in objB ) { if ( objB . hasOwnProperty ( key ) && ! objA . hasOwnProperty ( key ) ) { return false ; } } return true ; }
Performs equality by iterating through keys on an object and returning
false when any key has values which are not strictly equal between
objA and objB. Returns true when the values of all keys are strictly equal.

@return {boolean}
Performs equality by iterating through keys on an object and returning false when any key has values which are not strictly equal between objA and objB . Returns true when the values of all keys are strictly equal .