28 lines
596 B
JavaScript
28 lines
596 B
JavaScript
/*!
|
|
* is-equal-shallow <https://github.com/jonschlinkert/is-equal-shallow>
|
|
*
|
|
* Copyright (c) 2015, Jon Schlinkert.
|
|
* Licensed under the MIT License.
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
var isPrimitive = require('is-primitive');
|
|
|
|
module.exports = function isEqual(a, b) {
|
|
if (!a && !b) { return true; }
|
|
if (!a && b || a && !b) { return false; }
|
|
|
|
var numKeysA = 0, numKeysB = 0, key;
|
|
for (key in b) {
|
|
numKeysB++;
|
|
if (!isPrimitive(b[key]) || !a.hasOwnProperty(key) || (a[key] !== b[key])) {
|
|
return false;
|
|
}
|
|
}
|
|
for (key in a) {
|
|
numKeysA++;
|
|
}
|
|
return numKeysA === numKeysB;
|
|
};
|