├── auto.js ├── .eslintrc ├── .npmrc ├── .nycrc ├── .github └── workflows │ ├── node-pretest.yml │ ├── rebase.yml │ ├── require-allow-edits.yml │ ├── node-aught.yml │ └── node-tens.yml ├── polyfill.js ├── test ├── index.js ├── implementation.js ├── shimmed.js └── tests.js ├── .gitignore ├── shim.js ├── implementation.js ├── index.js ├── LICENSE ├── README.md ├── package.json └── CHANGELOG.md /auto.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('./shim')(); 4 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | } 6 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | allow-same-version=true 3 | message=v%s 4 | -------------------------------------------------------------------------------- /.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /.github/workflows/node-pretest.yml: -------------------------------------------------------------------------------- 1 | name: 'Tests: pretest/posttest' 2 | 3 | on: [pull_request, push] 4 | 5 | jobs: 6 | tests: 7 | uses: ljharb/actions/.github/workflows/pretest.yml@main 8 | -------------------------------------------------------------------------------- /polyfill.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var implementation = require('./implementation'); 4 | 5 | module.exports = function getPolyfill() { 6 | return typeof Object.is === 'function' ? Object.is : implementation; 7 | }; 8 | -------------------------------------------------------------------------------- /.github/workflows/rebase.yml: -------------------------------------------------------------------------------- 1 | name: Automatic Rebase 2 | 3 | on: [pull_request_target] 4 | 5 | jobs: 6 | _: 7 | uses: ljharb/actions/.github/workflows/rebase.yml@main 8 | secrets: 9 | token: ${{ secrets.GITHUB_TOKEN }} 10 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var index = require('../'); 4 | var test = require('tape'); 5 | 6 | var runTests = require('./tests'); 7 | 8 | test('as a function', function (t) { 9 | runTests(index, t); 10 | 11 | t.end(); 12 | }); 13 | -------------------------------------------------------------------------------- /.github/workflows/require-allow-edits.yml: -------------------------------------------------------------------------------- 1 | name: Require “Allow Edits” 2 | 3 | on: [pull_request_target] 4 | 5 | jobs: 6 | _: 7 | name: "Require “Allow Edits”" 8 | 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: ljharb/require-allow-edits@main 13 | -------------------------------------------------------------------------------- /test/implementation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var implementation = require('../implementation'); 4 | var callBind = require('call-bind'); 5 | var test = require('tape'); 6 | var runTests = require('./tests'); 7 | 8 | test('as a function', function (t) { 9 | runTests(callBind(implementation, Object), t); 10 | 11 | t.end(); 12 | }); 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # gitignore 2 | 3 | lib-cov 4 | *.seed 5 | *.log 6 | *.csv 7 | *.dat 8 | *.out 9 | *.pid 10 | *.gz 11 | 12 | pids 13 | logs 14 | results 15 | 16 | npm-debug.log 17 | node_modules 18 | 19 | coverage/ 20 | .nyc_output/ 21 | 22 | # Only apps should have lockfiles 23 | npm-shrinkwrap.json 24 | package-lock.json 25 | yarn.lock 26 | 27 | .npmignore 28 | -------------------------------------------------------------------------------- /shim.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var getPolyfill = require('./polyfill'); 4 | var define = require('define-properties'); 5 | 6 | module.exports = function shimObjectIs() { 7 | var polyfill = getPolyfill(); 8 | define(Object, { is: polyfill }, { 9 | is: function testObjectIs() { 10 | return Object.is !== polyfill; 11 | } 12 | }); 13 | return polyfill; 14 | }; 15 | -------------------------------------------------------------------------------- /implementation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var numberIsNaN = function (value) { 4 | return value !== value; 5 | }; 6 | 7 | module.exports = function is(a, b) { 8 | if (a === 0 && b === 0) { 9 | return 1 / a === 1 / b; 10 | } 11 | if (a === b) { 12 | return true; 13 | } 14 | if (numberIsNaN(a) && numberIsNaN(b)) { 15 | return true; 16 | } 17 | return false; 18 | }; 19 | 20 | -------------------------------------------------------------------------------- /.github/workflows/node-aught.yml: -------------------------------------------------------------------------------- 1 | name: 'Tests: node.js < 10' 2 | 3 | on: [pull_request, push] 4 | 5 | jobs: 6 | tests: 7 | uses: ljharb/actions/.github/workflows/node.yml@main 8 | with: 9 | range: '< 10' 10 | type: minors 11 | command: npm run tests-only 12 | 13 | node: 14 | name: 'node < 10' 15 | needs: [tests] 16 | runs-on: ubuntu-latest 17 | steps: 18 | - run: 'echo tests completed' 19 | -------------------------------------------------------------------------------- /.github/workflows/node-tens.yml: -------------------------------------------------------------------------------- 1 | name: 'Tests: node.js >= 10' 2 | 3 | on: [pull_request, push] 4 | 5 | jobs: 6 | tests: 7 | uses: ljharb/actions/.github/workflows/node.yml@main 8 | with: 9 | range: '>= 10' 10 | type: minors 11 | command: npm run tests-only 12 | 13 | node: 14 | name: 'node >= 10' 15 | needs: [tests] 16 | runs-on: ubuntu-latest 17 | steps: 18 | - run: 'echo tests completed' 19 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var define = require('define-properties'); 4 | var callBind = require('call-bind'); 5 | 6 | var implementation = require('./implementation'); 7 | var getPolyfill = require('./polyfill'); 8 | var shim = require('./shim'); 9 | 10 | var polyfill = callBind(getPolyfill(), Object); 11 | 12 | define(polyfill, { 13 | getPolyfill: getPolyfill, 14 | implementation: implementation, 15 | shim: shim 16 | }); 17 | 18 | module.exports = polyfill; 19 | -------------------------------------------------------------------------------- /test/shimmed.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('../auto'); 4 | 5 | var runTests = require('./tests'); 6 | 7 | var test = require('tape'); 8 | var defineProperties = require('define-properties'); 9 | var callBind = require('call-bind'); 10 | var isEnumerable = Object.prototype.propertyIsEnumerable; 11 | var functionsHaveNames = require('functions-have-names')(); 12 | 13 | test('shimmed', function (t) { 14 | t.equal(Object.is.length, 2, 'Object.is has a length of 2'); 15 | t.test('Function name', { skip: !functionsHaveNames }, function (st) { 16 | st.equal(Object.is.name, 'is', 'Object.is has name "is"'); 17 | st.end(); 18 | }); 19 | 20 | t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) { 21 | et.equal(false, isEnumerable.call(Object, 'is'), 'Object.is is not enumerable'); 22 | et.end(); 23 | }); 24 | 25 | runTests(callBind(Object.is, Object), t); 26 | 27 | t.end(); 28 | }); 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Jordan Harband 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /test/tests.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var hasSymbols = require('has-symbols')(); 4 | 5 | module.exports = function runTests(is, t) { 6 | t.test('works with primitives', function (st) { 7 | st.ok(is(), 'two absent args are the same'); 8 | st.ok(is(undefined), 'undefined & one absent arg are the same'); 9 | st.ok(is(undefined, undefined), 'undefined is undefined'); 10 | st.ok(is(null, null), 'null is null'); 11 | st.ok(is(true, true), 'true is true'); 12 | st.ok(is(false, false), 'false is false'); 13 | st.notOk(is(true, false), 'true is not false'); 14 | st.end(); 15 | }); 16 | 17 | t.test('works with NaN', function (st) { 18 | st.ok(is(NaN, NaN), 'NaN is NaN'); 19 | st.end(); 20 | }); 21 | 22 | t.test('differentiates zeroes', function (st) { 23 | st.ok(is(0, 0), '+0 is +0'); 24 | st.ok(is(-0, -0), '-0 is -0'); 25 | st.notOk(is(0, -0), '+0 is not -0'); 26 | st.end(); 27 | }); 28 | 29 | t.test('nonzero numbers', function (st) { 30 | st.ok(is(Infinity, Infinity), 'infinity is infinity'); 31 | st.ok(is(-Infinity, -Infinity), 'infinity is infinity'); 32 | st.ok(is(42, 42), '42 is 42'); 33 | st.notOk(is(42, -42), '42 is not -42'); 34 | st.end(); 35 | }); 36 | 37 | t.test('strings', function (st) { 38 | st.ok(is('', ''), 'empty string is empty string'); 39 | st.ok(is('foo', 'foo'), 'string is string'); 40 | st.notOk(is('foo', 'bar'), 'string is not different string'); 41 | st.end(); 42 | }); 43 | 44 | t.test('objects', function (st) { 45 | var obj = {}; 46 | st.ok(is(obj, obj), 'object is same object'); 47 | st.notOk(is(obj, {}), 'object is not different object'); 48 | st.end(); 49 | }); 50 | 51 | t.test('Symbols', { skip: !hasSymbols }, function (st) { 52 | st.ok(is(Symbol.iterator, Symbol.iterator), 'Symbol.iterator is itself'); 53 | st.notOk(is(Symbol(), Symbol()), 'different Symbols are not equal'); 54 | st.notOk(is(Symbol.iterator, Object(Symbol.iterator)), 'Symbol.iterator is not boxed form of itself'); 55 | st.end(); 56 | }); 57 | }; 58 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # object-is [![Version Badge][npm-version-svg]][package-url] 2 | 3 | [![github actions][actions-image]][actions-url] 4 | [![coverage][codecov-image]][codecov-url] 5 | [![License][license-image]][license-url] 6 | [![Downloads][downloads-image]][downloads-url] 7 | 8 | [![npm badge][npm-badge-png]][package-url] 9 | 10 | ES2015-compliant shim for Object.is - differentiates between -0 and +0, and can compare to NaN. 11 | 12 | Essentially, Object.is returns the same value as === - but true for NaN, and false for -0 and +0. 13 | 14 | This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](https://tc39.es/ecma262). 15 | 16 | ## Example 17 | 18 | ```js 19 | Object.is = require('object-is'); 20 | var assert = require('assert'); 21 | 22 | assert.ok(Object.is()); 23 | assert.ok(Object.is(undefined)); 24 | assert.ok(Object.is(undefined, undefined)); 25 | assert.ok(Object.is(null, null)); 26 | assert.ok(Object.is(true, true)); 27 | assert.ok(Object.is(false, false)); 28 | assert.ok(Object.is('foo', 'foo')); 29 | 30 | var arr = [1, 2]; 31 | assert.ok(Object.is(arr, arr)); 32 | assert.equal(Object.is(arr, [1, 2]), false); 33 | 34 | assert.ok(Object.is(0, 0)); 35 | assert.ok(Object.is(-0, -0)); 36 | assert.equal(Object.is(0, -0), false); 37 | 38 | assert.ok(Object.is(NaN, NaN)); 39 | assert.ok(Object.is(Infinity, Infinity)); 40 | assert.ok(Object.is(-Infinity, -Infinity)); 41 | ``` 42 | 43 | ## Tests 44 | Simply clone the repo, `npm install`, and run `npm test` 45 | 46 | [package-url]: https://npmjs.com/package/object-is 47 | [npm-version-svg]: https://versionbadg.es/es-shims/object-is.svg 48 | [deps-svg]: https://david-dm.org/es-shims/object-is.svg 49 | [deps-url]: https://david-dm.org/es-shims/object-is 50 | [dev-deps-svg]: https://david-dm.org/es-shims/object-is/dev-status.svg 51 | [dev-deps-url]: https://david-dm.org/es-shims/object-is#info=devDependencies 52 | [npm-badge-png]: https://nodei.co/npm/object-is.png?downloads=true&stars=true 53 | [license-image]: https://img.shields.io/npm/l/object-is.svg 54 | [license-url]: LICENSE 55 | [downloads-image]: https://img.shields.io/npm/dm/object-is.svg 56 | [downloads-url]: https://npm-stat.com/charts.html?package=object-is 57 | [codecov-image]: https://codecov.io/gh/es-shims/object-is/branch/main/graphs/badge.svg 58 | [codecov-url]: https://app.codecov.io/gh/es-shims/object-is/ 59 | [actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/object-is 60 | [actions-url]: https://github.com/es-shims/object-is/actions 61 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "object-is", 3 | "version": "1.1.6", 4 | "description": "ES2015-compliant shim for Object.is - differentiates between -0 and +0", 5 | "author": "Jordan Harband", 6 | "funding": { 7 | "url": "https://github.com/sponsors/ljharb" 8 | }, 9 | "license": "MIT", 10 | "main": "index.js", 11 | "scripts": { 12 | "prepack": "npmignore --auto --commentLines=autogenerated", 13 | "prepublishOnly": "safe-publish-latest", 14 | "prepublish": "not-in-publish || npm run prepublishOnly", 15 | "pretest": "npm run lint", 16 | "tests-only": "nyc tape 'test/**/*.js'", 17 | "test": "npm run tests-only", 18 | "posttest": "aud --production", 19 | "lint": "eslint --ext=js,mjs .", 20 | "postlint": "es-shim-api --bound", 21 | "version": "auto-changelog && git add CHANGELOG.md", 22 | "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" 23 | }, 24 | "repository": { 25 | "type": "git", 26 | "url": "git://github.com/es-shims/object-is.git" 27 | }, 28 | "bugs": { 29 | "url": "https://github.com/es-shims/object-is/issues" 30 | }, 31 | "homepage": "https://github.com/es-shims/object-is", 32 | "keywords": [ 33 | "is", 34 | "Object.is", 35 | "equality", 36 | "sameValueZero", 37 | "ES6", 38 | "ES2015", 39 | "shim", 40 | "polyfill", 41 | "es-shim API" 42 | ], 43 | "dependencies": { 44 | "call-bind": "^1.0.7", 45 | "define-properties": "^1.2.1" 46 | }, 47 | "devDependencies": { 48 | "@es-shims/api": "^2.4.2", 49 | "@ljharb/eslint-config": "^21.1.0", 50 | "aud": "^2.0.4", 51 | "auto-changelog": "^2.4.0", 52 | "eslint": "=8.8.0", 53 | "functions-have-names": "^1.2.3", 54 | "has-symbols": "^1.0.3", 55 | "in-publish": "^2.0.1", 56 | "npmignore": "^0.3.1", 57 | "nyc": "^10.3.2", 58 | "safe-publish-latest": "^2.0.0", 59 | "tape": "^5.7.5" 60 | }, 61 | "testling": { 62 | "files": "test.js", 63 | "browsers": [ 64 | "iexplore/6.0..latest", 65 | "firefox/3.0..6.0", 66 | "firefox/15.0..latest", 67 | "firefox/nightly", 68 | "chrome/4.0..10.0", 69 | "chrome/20.0..latest", 70 | "chrome/canary", 71 | "opera/10.0..12.0", 72 | "opera/15.0..latest", 73 | "opera/next", 74 | "safari/4.0..latest", 75 | "ipad/6.0..latest", 76 | "iphone/6.0..latest", 77 | "android-browser/4.2" 78 | ] 79 | }, 80 | "engines": { 81 | "node": ">= 0.4" 82 | }, 83 | "auto-changelog": { 84 | "output": "CHANGELOG.md", 85 | "template": "keepachangelog", 86 | "unreleased": false, 87 | "commitLimit": false, 88 | "backfillLimit": false, 89 | "hideCredit": true 90 | }, 91 | "publishConfig": { 92 | "ignore": [ 93 | ".github/workflows" 94 | ] 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 | 8 | ## [v1.1.6](https://github.com/es-shims/object-is/compare/v1.1.5...v1.1.6) - 2024-02-27 9 | 10 | ### Commits 11 | 12 | - [actions] reuse common workflows [`f8d0c06`](https://github.com/es-shims/object-is/commit/f8d0c0617901b4b220f2bbbaff8c9ec7f22891c6) 13 | - [actions] use `node/install` instead of `node/run` [`90fc019`](https://github.com/es-shims/object-is/commit/90fc01955dc677fef745f0dc4164e2144b047997) 14 | - [actions] update workflows [`37339d8`](https://github.com/es-shims/object-is/commit/37339d870aacad9f524cb685c0075aed78e9bd6e) 15 | - [meta] use `npmignore` to autogenerate an npmignore file [`a257c19`](https://github.com/es-shims/object-is/commit/a257c19d55c275ac44892b1d2d98a5d06e976943) 16 | - [readme] fix badges [`50af053`](https://github.com/es-shims/object-is/commit/50af053d4d8ee02657d71f784c31b372905187a7) 17 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `safe-publish-latest`, `tape` [`86058c6`](https://github.com/es-shims/object-is/commit/86058c65153dea90d18ff969244bdc610f382046) 18 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `functions-have-names`, `has-symbols`, `tape` [`d5484eb`](https://github.com/es-shims/object-is/commit/d5484eb02a44482de29ce95ccfd01e885d0ff83b) 19 | - [actions] update rebase action to use reusable workflow [`68075c5`](https://github.com/es-shims/object-is/commit/68075c5bd0e35b51e815e7fd95bb90cc54deb699) 20 | - [actions] update codecov uploader [`f12fbb2`](https://github.com/es-shims/object-is/commit/f12fbb2f23b43c2d982fd00c95ff98b01e8747a1) 21 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `has-symbols`, `tape` [`43eb235`](https://github.com/es-shims/object-is/commit/43eb235ffa1dd258ff5ef990fd2f0ce78ce40ccc) 22 | - [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `aud`, `npmignore`, `tape` [`f306966`](https://github.com/es-shims/object-is/commit/f306966e53fac2e24dd11dfe6cf31a8ae20a08da) 23 | - [readme] add actions and codecov badges [`e443b4a`](https://github.com/es-shims/object-is/commit/e443b4a3d0b01683cb6fec59916ad4ec463e9de7) 24 | - [readme] remove travis badge [`5165adc`](https://github.com/es-shims/object-is/commit/5165adccf9e8373f38a01e7a5887b42a4229ca2b) 25 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`e7ccf56`](https://github.com/es-shims/object-is/commit/e7ccf56f84434f6671fae1d1fe4945f5b3a84120) 26 | - [Deps] update `call-bind`, `define-properties` [`a3052db`](https://github.com/es-shims/object-is/commit/a3052db9e272c5d544553a7f43c916689e8cca9a) 27 | - [readme] fix URLs [`ac37ea6`](https://github.com/es-shims/object-is/commit/ac37ea68b2a11ef7ebff694e6c4f308c735240ea) 28 | - [readme] assert.notOk -> assert.equal [`7fe769f`](https://github.com/es-shims/object-is/commit/7fe769fc8293d8756ed2d31c4d12afc0581498b7) 29 | - [Deps] update `call-bind` [`b965cd3`](https://github.com/es-shims/object-is/commit/b965cd319e1c397a5ef7dc6dffc9a5bd4329d408) 30 | - [Dev Deps] update `tape` [`a737830`](https://github.com/es-shims/object-is/commit/a737830a051cdc650c3bfb78b085586c9fd7cd13) 31 | - [Deps] update `define-properties`, `es-abstract` [`441eafb`](https://github.com/es-shims/object-is/commit/441eafbca4e32d76dc16bea6b73ee794296e2c0c) 32 | 33 | ## [v1.1.5](https://github.com/es-shims/object-is/compare/v1.1.4...v1.1.5) - 2021-02-20 34 | 35 | ### Commits 36 | 37 | - [meta] do not publish github action workflow files [`ec00b0f`](https://github.com/es-shims/object-is/commit/ec00b0f3a5096a7d57884e201c76ded3052a1b9c) 38 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`279645e`](https://github.com/es-shims/object-is/commit/279645e330da410da9776455274aa6b3c89b585b) 39 | - [actions] update workflows [`6b4ef5a`](https://github.com/es-shims/object-is/commit/6b4ef5a219fc3982433fc3df2ad9d57994be0761) 40 | - [Dev Deps] update `eslint`, `functions-have-names`, `tape` [`f5fd32a`](https://github.com/es-shims/object-is/commit/f5fd32ace61d4643fe0bf67ca83a6674a65906be) 41 | - [Deps] update `call-bind` [`0fafc13`](https://github.com/es-shims/object-is/commit/0fafc13ec1a20d3075512ae9d2c0b0ee252169a9) 42 | - [Deps] update `call-bind` [`e28a929`](https://github.com/es-shims/object-is/commit/e28a929b71fc1939a4c4d5c92ca0c04a0b27ff81) 43 | - [readme] Add note about es-shim API [`f903cc1`](https://github.com/es-shims/object-is/commit/f903cc11186e0d5c6c4173821d6b7bf2a49f6c01) 44 | 45 | ## [v1.1.4](https://github.com/es-shims/object-is/compare/v1.1.3...v1.1.4) - 2020-11-26 46 | 47 | ### Commits 48 | 49 | - [Tests] migrate tests to Github Actions [`958ab26`](https://github.com/es-shims/object-is/commit/958ab266fd68396781c076d8a5ee4ba292561362) 50 | - [Tests] add `shimmed` and `implementation` and `index` tests; run `es-shim-api` in postlint; use `tape` runner [`b918fb8`](https://github.com/es-shims/object-is/commit/b918fb849023032d2da61ead95f31b0a03371131) 51 | - [Tests] run `nyc` on all tests [`8f62816`](https://github.com/es-shims/object-is/commit/8f6281683ad58ffe9b5809c2a9e7bb65db344c9c) 52 | - [actions] add "Allow Edits" workflow [`aa419f0`](https://github.com/es-shims/object-is/commit/aa419f0ea2b497844365f9f51a746fa2a57bb6ee) 53 | - [Deps] use `call-bind` instead of `es-abstract` [`4991728`](https://github.com/es-shims/object-is/commit/49917288eddfce31949f5a3351f0e0bb67929a2b) 54 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud` [`3ce2ef5`](https://github.com/es-shims/object-is/commit/3ce2ef5e834bf22566ea5741178cd76bb35f8a89) 55 | - [meta] ignore coverage output [`d778383`](https://github.com/es-shims/object-is/commit/d778383fde9222bc5349dd4adcaab9f5ef10254e) 56 | - [actions] switch Automatic Rebase workflow to `pull_request_target` event [`e0d9b41`](https://github.com/es-shims/object-is/commit/e0d9b41a73f51f1c8b9d9b402da5f754926bc280) 57 | 58 | ## [v1.1.3](https://github.com/es-shims/object-is/compare/v1.1.2...v1.1.3) - 2020-09-30 59 | 60 | ### Commits 61 | 62 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`6f1217f`](https://github.com/es-shims/object-is/commit/6f1217fc82cbe25d3911cad2d3298a8f3f51bd7f) 63 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog` [`68d8ab0`](https://github.com/es-shims/object-is/commit/68d8ab07275949aa78f20f0e6270c0a26aba2647) 64 | - [Deps] update `es-abstract` [`d665d57`](https://github.com/es-shims/object-is/commit/d665d570e416f039bbbc577f0c2c77104302d227) 65 | - [Deps] update `es-abstract` [`61b4d08`](https://github.com/es-shims/object-is/commit/61b4d0893212b08ec89ba8c388948fa4377f7a43) 66 | 67 | ## [v1.1.2](https://github.com/es-shims/object-is/compare/v1.1.1...v1.1.2) - 2020-04-14 68 | 69 | ### Commits 70 | 71 | - [Fix] avoid mutating the builtin `Object.is` in the main entry point [`5988702`](https://github.com/es-shims/object-is/commit/59887020544021d7cf8e72cd84c4d67abcf558c5) 72 | 73 | ## [v1.1.1](https://github.com/es-shims/object-is/compare/v1.1.0...v1.1.1) - 2020-04-14 74 | 75 | ### Fixed 76 | 77 | - [Deps] add missing `define-properties` [`#10`](https://github.com/es-shims/object-is/issues/10) 78 | 79 | ## [v1.1.0](https://github.com/es-shims/object-is/compare/v1.0.2...v1.1.0) - 2020-04-14 80 | 81 | ### Commits 82 | 83 | - [New] convert to `es-shim-api` interface [`c8b6e9f`](https://github.com/es-shims/object-is/commit/c8b6e9f249438bfd9dfa315415eddd3a1d436d15) 84 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`; add `safe-publish-latest` [`222a2a9`](https://github.com/es-shims/object-is/commit/222a2a9a2eb08be844bf4c619d1eb711d743c6f3) 85 | - [Dev Deps] update `auto-changelog`, `tape` [`1ea6a92`](https://github.com/es-shims/object-is/commit/1ea6a92153695074c4e3f2e2e0ec26b83f6b091a) 86 | - [Dev Deps] update `auto-changelog`; add `aud` [`1d129e0`](https://github.com/es-shims/object-is/commit/1d129e0dfe386a1e39fa4f3ff991198e885299b1) 87 | - [Tests] only audit prod deps [`ad12386`](https://github.com/es-shims/object-is/commit/ad1238688dcfe9170217b6b9a02122369979d221) 88 | 89 | ## [v1.0.2](https://github.com/es-shims/object-is/compare/v1.0.1...v1.0.2) - 2019-12-15 90 | 91 | ### Commits 92 | 93 | - [Tests] use shared travis-ci configs [`eb56ddf`](https://github.com/es-shims/object-is/commit/eb56ddf82bd08f56bd50db7333f2a7b6cef2452a) 94 | - [Tests] up to `node` `v12.6`, `v11.15`, `v10.16`, `v9.11`, `v8.16`, `v7.10`, `v6.17`, `v5.12`, `4.9`; use `nvm install-latest-npm` [`a5bb4e3`](https://github.com/es-shims/object-is/commit/a5bb4e3663902dda4eb9c748aecd04532428594a) 95 | - [Tests] remove `jscs` [`1929690`](https://github.com/es-shims/object-is/commit/19296907bbb9864518ccb2364a44f9adda9c910c) 96 | - Using my standard jscs.json file. [`a7621dc`](https://github.com/es-shims/object-is/commit/a7621dcafbdf4befa4bb97c4e132f30fd486addf) 97 | - [meta] run `auto-changelog` [`5c551c4`](https://github.com/es-shims/object-is/commit/5c551c406f8a72d53f8f4bbabc89f0c1892bf262) 98 | - Update `tape`, `covert`, `jscs` [`bd84112`](https://github.com/es-shims/object-is/commit/bd8411263e754f5a464b6d55c01ecd3b1f4c7437) 99 | - [meta] move repo to es-shims org [`15d3cdc`](https://github.com/es-shims/object-is/commit/15d3cdcbd4b78c8dee80507ac8a5f4cff7ab42d4) 100 | - Test up to `io.js` `v2.2` [`d1d2de4`](https://github.com/es-shims/object-is/commit/d1d2de48f72853552e3d3a751b3f178c5dc10ef5) 101 | - Update `tape`, `jscs` [`b40e85f`](https://github.com/es-shims/object-is/commit/b40e85f77cc906fc54246cf672a78b902bd65aab) 102 | - Add `npm run eslint` [`a80ee81`](https://github.com/es-shims/object-is/commit/a80ee81d12d8fb4120bf590c4d4622fb5dc3f67b) 103 | - Only apps should have lockfiles [`f70677a`](https://github.com/es-shims/object-is/commit/f70677adbe0a765ee26e214a95a97d0ddf88f31e) 104 | - [actions] add automatic rebasing / merge commit blocking [`27780d3`](https://github.com/es-shims/object-is/commit/27780d330cbaf3ef96479b5a0a3fe55f71b54bb6) 105 | - [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`cf886ce`](https://github.com/es-shims/object-is/commit/cf886ced70afff6c5a66be6f9ddba2d330034c70) 106 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `has-symbols` [`b70e146`](https://github.com/es-shims/object-is/commit/b70e146496488ac5e1a48651cb94292e67051e48) 107 | - [meta] add version scripts [`25a5308`](https://github.com/es-shims/object-is/commit/25a5308bfcc41733a86ce0461ef69a2459215b5b) 108 | - [Tests] up to `node` `v12.10` [`b6e934c`](https://github.com/es-shims/object-is/commit/b6e934ca8f0e65dac7ed3c30b2b7907d39e36f6b) 109 | - [Dev Deps] update `tape`, `jscs` [`df38b5a`](https://github.com/es-shims/object-is/commit/df38b5a856071aaa4d6b8e089a48d80775cb1ed9) 110 | - Adding license and downloads badges [`c743f09`](https://github.com/es-shims/object-is/commit/c743f0907b0bab73a0821541190a865a5c3e5da9) 111 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`41d1c5b`](https://github.com/es-shims/object-is/commit/41d1c5b8173f6543e01940b18daee93c586058d0) 112 | - Add tests for Symbols. [`8189ca7`](https://github.com/es-shims/object-is/commit/8189ca73b647a13f63162bc8ed14040386972530) 113 | - [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`698c449`](https://github.com/es-shims/object-is/commit/698c449a8fdc6634747765333cdd8071119932b8) 114 | - Add `npm run security` [`1fe530a`](https://github.com/es-shims/object-is/commit/1fe530abd3164eb70dedd959a25f3b1ad0d02c01) 115 | - Test up to `io.js` `v3.0` [`cd6ac03`](https://github.com/es-shims/object-is/commit/cd6ac034cda66916319c68aeea190e5817de106c) 116 | - [Refactor] no-else-return [`a590382`](https://github.com/es-shims/object-is/commit/a590382d69134915f37039ae6841c9fffbdd5b81) 117 | - [docs] clean up some links [`422df90`](https://github.com/es-shims/object-is/commit/422df90523f4d7f2463e404d394f656232f0fc7c) 118 | - All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`8684418`](https://github.com/es-shims/object-is/commit/8684418131004859fe18443d4f57f28510b72e13) 119 | - Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`6b618ac`](https://github.com/es-shims/object-is/commit/6b618acfa5bcab8d1684d926728000afb4f1ee52) 120 | - [readme] prefer ES2015 over ES6 [`9aae9f9`](https://github.com/es-shims/object-is/commit/9aae9f9d1b4e699364f4822534b89887abb9089f) 121 | - [meta] use keepachangelog with auto-changelog [`3abdcd9`](https://github.com/es-shims/object-is/commit/3abdcd915bc647a5f01af2422fa4a37b2980f946) 122 | - [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`65da8bb`](https://github.com/es-shims/object-is/commit/65da8bba76d4b0e95f95d2a6b98d7bfe5b294ff0) 123 | - [Tests] use `has-symbols` [`9c88ec7`](https://github.com/es-shims/object-is/commit/9c88ec729227f35dc18fe52131c11afd296a042e) 124 | - Update `tape`, `jscs` [`abc6021`](https://github.com/es-shims/object-is/commit/abc6021a0be38921688182e0f95376597056f6cd) 125 | - Update `jscs` [`f85f0ba`](https://github.com/es-shims/object-is/commit/f85f0ba49809030c09dfda4af0022c4122438f90) 126 | - Update `tape`, `jscs` [`9c8b28b`](https://github.com/es-shims/object-is/commit/9c8b28bf52521b70fdacdaba1035e101aa0a1240) 127 | - Using single quotes. [`46a566e`](https://github.com/es-shims/object-is/commit/46a566efbc6366aa44ef9ac8b47668ede5830d50) 128 | - [meta] add `funding` field [`f71e665`](https://github.com/es-shims/object-is/commit/f71e66510676f9bfeb6e81a05821161953879270) 129 | - [Dev Deps] update `tape` [`694a94e`](https://github.com/es-shims/object-is/commit/694a94e83b4d415b1e43adb8011ad33351945105) 130 | - Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`4b29a71`](https://github.com/es-shims/object-is/commit/4b29a718b459ecde3512c4dd6577a2a5e95b7cc6) 131 | - Update `jscs` [`204e6fe`](https://github.com/es-shims/object-is/commit/204e6febc368ca94091ac0b5ec0254c33b0ee462) 132 | - Lock covert to v1.0.0. [`efc5a21`](https://github.com/es-shims/object-is/commit/efc5a21e1d0cc463ec7c7ef2f75a317085093d5e) 133 | - Updating tape [`d1ff721`](https://github.com/es-shims/object-is/commit/d1ff721d2bdec538112cdbbfedcf06d578093831) 134 | - Updating jscs [`35b4df9`](https://github.com/es-shims/object-is/commit/35b4df90d0c97a4f004f0188940b2e602b645c16) 135 | - Updating jscs [`46c3b9d`](https://github.com/es-shims/object-is/commit/46c3b9d31a7f8ce43c496e0304b22ce142311917) 136 | - Updating jscs [`75c9b8b`](https://github.com/es-shims/object-is/commit/75c9b8b45022d5e9b44b0c9a055974185b550a57) 137 | 138 | ## [v1.0.1](https://github.com/es-shims/object-is/compare/v1.0.0...v1.0.1) - 2014-08-27 139 | 140 | ### Merged 141 | 142 | - Use svg instead of png to get better image quality [`#2`](https://github.com/es-shims/object-is/pull/2) 143 | 144 | ### Commits 145 | 146 | - Adding `npm run lint` [`af5dedd`](https://github.com/es-shims/object-is/commit/af5dedd2f40df7584c856576123a2d2852dd9694) 147 | - Using an easier isNaN check [`89474ae`](https://github.com/es-shims/object-is/commit/89474ae3e26eb857d89b01c1f3b20f859bd0f161) 148 | - Oops, run quiet coverage as part of tests [`5149e18`](https://github.com/es-shims/object-is/commit/5149e1876808e67a016fd913f6d99481bf7091f2) 149 | - Run linter as part of tests [`d5eee8a`](https://github.com/es-shims/object-is/commit/d5eee8a43b95c619cf3b06ef3d64cefc865f33f3) 150 | - Updating covert [`0b862da`](https://github.com/es-shims/object-is/commit/0b862dad7873b9aab74d2f4262b5b587120c169b) 151 | - Updating tape [`484e6ca`](https://github.com/es-shims/object-is/commit/484e6cab0d5734b8c9f23ceada58e93b09dc15ee) 152 | 153 | ## [v1.0.0](https://github.com/es-shims/object-is/compare/v0.0.0...v1.0.0) - 2014-08-01 154 | 155 | ### Commits 156 | 157 | - Make sure old and unstable nodes don't break Travis [`c8d3dfe`](https://github.com/es-shims/object-is/commit/c8d3dfe4c0f6dc76a5b0cc22a6a6401fa1105cea) 158 | - Bumping to v1.0.0. [`8811835`](https://github.com/es-shims/object-is/commit/8811835bff203cf0dc0dee1342beeb749ea63e10) 159 | - Updating tape [`0767579`](https://github.com/es-shims/object-is/commit/0767579b3cbf59e49c73c131186bfcbad4448020) 160 | - Updating covert [`6b67a0b`](https://github.com/es-shims/object-is/commit/6b67a0b4b6933ea23c74c24037f3f515942a005a) 161 | - Run code coverage in tests [`8b5d70d`](https://github.com/es-shims/object-is/commit/8b5d70d9cbf6194d69ee22b8433fe4e0a3d7507e) 162 | - Updating tape [`57b019c`](https://github.com/es-shims/object-is/commit/57b019c8b74030601dc71dc38cd2c41cf5b735d4) 163 | - Updating tape [`91d94f9`](https://github.com/es-shims/object-is/commit/91d94f9b06c4a86942b077979536a8c2994ab374) 164 | 165 | ## v0.0.0 - 2014-02-17 166 | 167 | ### Commits 168 | 169 | - package.json [`b724e50`](https://github.com/es-shims/object-is/commit/b724e50ea4a151f46ff5344f9dc3f00d48e60695) 170 | - read me [`62470f5`](https://github.com/es-shims/object-is/commit/62470f58dbef4ba0b96c6c000b2802e328c54be6) 171 | - Tests. [`639e212`](https://github.com/es-shims/object-is/commit/639e212c478afcb8c9a24753aa8fc2b2fdcfb925) 172 | - Initial commit [`8e95b37`](https://github.com/es-shims/object-is/commit/8e95b3744c07594c49372c5732d96235f0b7d9d6) 173 | - Implementation. [`47780bc`](https://github.com/es-shims/object-is/commit/47780bc0f483eeabd853877fa33295976cf201ae) 174 | - Travis CI [`baaf8c7`](https://github.com/es-shims/object-is/commit/baaf8c70bc7fd88cf149af9b0c992febb5e89514) 175 | - Covert is broken in node 0.6 [`ee040b2`](https://github.com/es-shims/object-is/commit/ee040b2f3a917da9a33a287daf8470e95db271e1) 176 | --------------------------------------------------------------------------------