ES6-compliant shim for Object.is - differentiates between -0 and +0, and can compare to NaN.
Essentially, Object.is returns the same value as === - but true for NaN, and false for -0 and +0.
Object.is = require('object-is'); var assert = require('assert'); assert.ok(Object.is()); assert.ok(Object.is(undefined)); assert.ok(Object.is(undefined, undefined)); assert.ok(Object.is(null, null)); assert.ok(Object.is(true, true)); assert.ok(Object.is(false, false)); assert.ok(Object.is('foo', 'foo')); var arr = [1, 2]; assert.ok(Object.is(arr, arr)); assert.notOk(Object.is(arr, [1, 2])); assert.ok(Object.is(0, 0)); assert.ok(Object.is(-0, -0)); assert.notOk(Object.is(0, -0)); assert.ok(Object.is(NaN, NaN)); assert.ok(Object.is(Infinity, Infinity)); assert.ok(Object.is(-Infinity, -Infinity));
Simply clone the repo, npm install
, and run npm test