Skip to content

ES6-compliant shim for Object.is - differentiates between -0 and +0, and can compare to NaN.

License

Notifications You must be signed in to change notification settings

es-shims/object-is

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Feb 28, 2024
a4d045a · Feb 28, 2024
Nov 8, 2022
Nov 27, 2020
Dec 15, 2021
Nov 8, 2022
Jul 22, 2019
May 24, 2021
Feb 28, 2024
Feb 18, 2014
Feb 27, 2024
Apr 14, 2020
Apr 14, 2020
Nov 27, 2020
Feb 28, 2024
Apr 14, 2020
Apr 14, 2020

Repository files navigation

object-is Version Badge

github actions coverage License Downloads

npm badge

ES2015-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.

This package implements the es-shim API interface. It works in an ES3-supported environment and complies with the spec.

Example

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.equal(Object.is(arr, [1, 2]), false);

assert.ok(Object.is(0, 0));
assert.ok(Object.is(-0, -0));
assert.equal(Object.is(0, -0), false);

assert.ok(Object.is(NaN, NaN));
assert.ok(Object.is(Infinity, Infinity));
assert.ok(Object.is(-Infinity, -Infinity));

Tests

Simply clone the repo, npm install, and run npm test