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.1 KiB
42 lines
1.1 KiB
/** |
|
* 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;
|
|
|