Intelligent object diffing for JavaScript