4.1.2 / 2020-10-30
==================
  * [Refactor] use extracted `call-bind` instead of full `es-abstract`
  * [Dev Deps] update `eslint`, `ses`, `browserify`
  * [Tests] run tests in SES
  * [Tests] ses-compat: show error stacks

4.1.1 / 2020-09-11
==================
  * [Fix] avoid mutating `Object.assign` in modern engines
  * [Refactor] use `callBind` from `es-abstract` instead of `function-bind`
  * [Deps] update `has-symbols`, `object-keys`, `define-properties`
  * [meta] add `funding` field, FUNDING.yml
  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `browserify`, `covert`, `for-each`, `is`, `tape`, `functions-have-names`; add `aud`, `safe-publish-latest`; remove `jscs`
  * [actions] add Require Allow Edits workflow
  * [actions] add automatic rebasing / merge commit blocking
  * [Tests] ses-compat - add test to ensure package initializes correctly after ses lockdown (#77)
  * [Tests] Add passing test for a source of `window.location` (#68)
  * [Tests] use shared travis-ci config
  * [Tests] use `npx aud` instead of `npm audit` with hoops or `nsp`
  * [Tests] use `functions-have-names`

4.1.0 / 2017-12-21
==================
  * [New] add `auto` entry point (#52)
  * [Refactor] Use `has-symbols` module
  * [Deps] update `function-bind`, `object-keys`
  * [Dev Deps] update `@es-shims/api`, `browserify`, `nsp`, `eslint`, `@ljharb/eslint-config`, `is`
  * [Tests] up to `node` `v9.3`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS

4.0.4 / 2016-07-04
==================
  * [Fix] Cache original `getOwnPropertySymbols`, and use that when `Object.getOwnPropertySymbols` is unavailable
  * [Deps] update `object-keys`
  * [Dev Deps] update `eslint`, `get-own-property-symbols`, `core-js`, `jscs`, `nsp`, `browserify`, `@ljharb/eslint-config`, `tape`, `@es-shims/api`
  * [Tests] up to `node` `v6.2`, `v5.10`, `v4.4`
  * [Tests] run sham tests on node 0.10
  * [Tests] use pretest/posttest for linting/security

4.0.3 / 2015-10-21
==================
  * [Fix] Support core-js's Symbol sham (#17)
  * [Fix] Ensure that properties removed or made non-enumerable during enumeration are not assigned (#16)
  * [Fix] Avoid looking up keys and values more than once
  * [Tests] Avoid using `reduce` so `npm run test:shams:corejs` passes in `node` `v0.8` ([core-js#122](https://github.com/zloirock/core-js/issues/122))
  * [Tests] Refactor to use my conventional structure that separates shimmed, implementation, and common tests
  * [Tests] Create `npm run test:shams` and better organize tests for symbol shams
  * [Tests] Remove `nsp` in favor of `requiresafe`

4.0.2 / 2015-10-20
==================
  * [Fix] Ensure correct property enumeration order, particularly in v8 (#15)
  * [Deps] update `object-keys`, `define-properties`
  * [Dev Deps] update `browserify`, `is`, `tape`, `jscs`, `eslint`, `@ljharb/eslint-config`
  * [Tests] up to `io.js` `v3.3`, `node` `v4.2`

4.0.1 / 2015-08-16
==================
  * [Docs] Add `Symbol` note to readme

4.0.0 / 2015-08-15
==================
  * [Breaking] Implement the [es-shim API](es-shims/api).
  * [Robustness] Make implementation robust against later modification of environment methods.
  * [Refactor] Move implementation to `implementation.js`
  * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
  * [Deps] update `object-keys`, `define-properties`
  * [Dev Deps] update `browserify`, `tape`, `eslint`, `jscs`, `browserify`
  * [Tests] Add `npm run tests-only`
  * [Tests] use my personal shared `eslint` config.
  * [Tests] up to `io.js` `v3.0`

3.0.1 / 2015-06-28
==================
  * Cache `Object` and `Array#push` to make the shim more robust.
  * [Fix] Remove use of `Array#filter`, which isn't in ES3.
  * [Deps] Update `object-keys`, `define-properties`
  * [Dev Deps] Update `get-own-property-symbols`, `browserify`, `eslint`, `nsp`
  * [Tests] Test up to `io.js` `v2.3`
  * [Tests] Adding `Object.assign` tests for non-object targets, per https://github.com/paulmillr/es6-shim/issues/348

3.0.0 / 2015-05-20
==================
  * Attempt to feature-detect Symbols, even if `typeof Symbol() !== 'symbol'` (#12)
  * Make a separate `hasSymbols` internal module
  * Update `browserify`, `eslint`

2.0.3 / 2015-06-28
==================
  * Cache `Object` and `Array#push` to make the shim more robust.
  * [Fix] Remove use of `Array#filter`, which isn't in ES3
  * [Deps] Update `object-keys`, `define-properties`
  * [Dev Deps] Update `browserify`, `nsp`, `eslint`
  * [Tests] Test up to `io.js` `v2.3`

2.0.2 / 2015-05-20
==================
  * Make sure `.shim` is non-enumerable.
  * Refactor `.shim` implementation to use `define-properties` predicates, rather than `delete`ing the original.
  * Update docs to match spec/implementation. (#11)
  * Add `npm run eslint`
  * Test up to `io.js` `v2.0`
  * Update `jscs`, `browserify`, `covert`

2.0.1 / 2015-04-12
==================
  * Make sure non-enumerable Symbols are excluded.

2.0.0 / 2015-04-12
==================
  * Make sure the shim function overwrites a broken implementation with pending exceptions.
  * Ensure shim is not enumerable using `define-properties`
  * Ensure `Object.assign` includes symbols.
  * All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`.
  * Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures.
  * Add `npm run security` via `nsp`
  * Update `browserify`, `jscs`, `tape`, `object-keys`, `is`

1.1.1 / 2014-12-14
==================
  * Actually include the browser build in `npm`

1.1.0 / 2014-12-14
==================
  * Add `npm run build`, and build an automatic-shimming browser distribution as part of the npm publish process.
  * Update `is`, `jscs`

1.0.3 / 2014-11-29
==================
  * Revert "optimize --production installs"

1.0.2 / 2014-11-27
==================
  * Update `jscs`, `is`, `object-keys`, `tape`
  * Add badges to README
  * Name URLs in README
  * Lock `covert` to `v1.0.0`
  * Optimize --production installs

1.0.1 / 2014-08-26
==================
  * Update `is`, `covert`

1.0.0 / 2014-08-07
==================
  * Update `object-keys`, `tape`

0.5.0 / 2014-07-31
==================
  * Object.assign no longer throws on null or undefined sources, per https://bugs.ecmascript.org/show_bug.cgi?id=3096

0.4.3 / 2014-07-30
==================
  * Don’t modify vars in the function signature, since it deoptimizes v8

0.4.2 / 2014-07-30
==================
  * Fixing the version number: v0.4.2

0.4.1 / 2014-07-19
==================
  * Revert "Use the native Object.keys if it’s available."

0.4.0 / 2014-07-19
==================
  * Use the native Object.keys if it’s available.
  * Fixes [#2](https://github.com/ljharb/object.assign/issues/2).
  * Adding failing tests for [#2](https://github.com/ljharb/object.assign/issues/2).
  * Fix indentation.
  * Adding `npm run lint`
  * Update `tape`, `covert`
  * README: Use SVG badge for Travis [#1](https://github.com/ljharb/object.assign/issues/1) from mathiasbynens/patch-1

0.3.1 / 2014-04-10
==================
  * Object.assign does partially modify objects if it throws, per https://twitter.com/awbjs/status/454320863093862400

0.3.0 / 2014-04-10
==================
  * Update with newest ES6 behavior - Object.assign now takes a variable number of source objects.
  * Update `tape`
  * Make sure old and unstable nodes don’t fail Travis

0.2.1 / 2014-03-16
==================
  * Let object-keys handle the fallback
  * Update dependency badges
  * Adding bower.json

0.2.0 / 2014-03-16
==================
  * Use a for loop, because ES3 browsers don’t have "reduce"

0.1.1 / 2014-03-14
==================
  * Updating readme

0.1.0 / 2014-03-14
==================
  * Initial release.

