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.
43 lines
1.1 KiB
43 lines
1.1 KiB
10 years ago
|
/**
|
||
|
* Copyright 2013-2015, Facebook, Inc.
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
* This source code is licensed under the BSD-style license found in the
|
||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||
|
*
|
||
|
* @providesModule shallowEqual
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
/**
|
||
|
* 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}
|
||
|
*/
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
module.exports = shallowEqual;
|