Deep structural equality polyfill for ECMAScript. Compare any JavaScript values by structure, not by reference.
npm install object-is-equal
const isEqual = require('object-is-equal');
Object.isEqual({a:1, b:{c:2}}, {a:1, b:{c:2}}); // true
Object.isEqual(0, -0, { strict: true }); // false
Object.isEqual(obj1, obj2, { snapshot: true }); // atomic comparison (v5.2.0)
Official proposal document for the ECMAScript committee.
Complete API reference, supported types, options, and security analysis.
Practical examples for all types.
Product overview, KPIs, competitive analysis.
Production-ready polyfill. Zero dependencies.
Star, fork, or contribute to the TC39 proposal.