Object.isEqual()

Deep structural equality polyfill for ECMAScript. Compare any JavaScript values by structure, not by reference.

v5.2.0 TC39 Stage 0 Proposal MIT License
This proposal has been submitted to the ECMAScript Technical Committee (TC39) for consideration. Read the proposal

Quick Start

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)

Documentation

📝

TC39 Proposal

Official proposal document for the ECMAScript committee.

📚

Full Documentation

Complete API reference, supported types, options, and security analysis.

💡

Usage Examples

Practical examples for all types.

📊

Executive Report

Product overview, KPIs, competitive analysis.

💻

Source Code

Production-ready polyfill. Zero dependencies.

🔗

GitHub Repository

Star, fork, or contribute to the TC39 proposal.