I have implemented a tail call optimized object equality checker. It does not handle functions as of now. It does good with key value pairs. You can find it at https://github.com/nmishra/helpers.js