Hey,
in the current implementation of shallow equal, we don't check for the key to exist in the B object.
This can lead to bug, in case some values are undefined.
For example
shallowEqual( { a: undefined}, { bb: 2} )
currnetly return true instead of false.
On can check this by pulling maxired@6de3fc5
Following #590 , I agree that it might be a good option to switch to a more robust implementation