| /*! |
| * 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; |
| }; |