es6-shim 0.35.5 (7 March 2019)
- [Fix]
es6-sham
: Function.prototype.name
: don’t poison the getter when the receiver is Function.prototype
(#454)
- [Dev Deps] update
eslint
, @ljharb/eslint-config
- [Dev Deps] remove
jscs
and jshint
es6-shim 0.35.4 (29 October 2018)
- [Fix] protect against evil build processes by ensuring these feature tests don‘t look like no-ops that are safe to remove
- [Fix] broken
hasULPDistance
→ working withinULPDistance
helper
- [Fix]
acosh
: fix precision (#338)
- [Fix]
Math.{asinh,atanh,cosh,sinh}
precision (from #338)
- [Fix] Google Translate adds a broken
Set
to the global scope (#438)
- [Fix] Distinguish Set and Map iterators (#387)
- [Docs] Tweaking documentation specifying inclusion order (#435)
es6-shim 0.35.3 (23 January 2017)
- [Fix] avoid needlessly shimming
Array#{find, findIndex}
(#433)
- [Dev Deps] update
eslint
, @ljharb/eslint-config
, grunt-saucelabs
- [Tests] up to
node
v7.4
, v4.7
; improve test matrix
es6-shim 0.35.2 (3 December 2016)
- [Fix] ensure
document.all
is not treated as a non-object-coercible (#428)
- [Performance] Use original map for data backing when possible (#429, #422)
- [Dev Deps] update
es5-shim
, eslint
, @ljharb/eslint-config
, jscs
, jshint
, mocha
, promises-plus-tests
, uglify-js
- [Tests] up to
node
v7.2
, v5.12
, v4.6
; improve test matrix
- [Tests] avoid function name inference in node 7+
- [Tests] add Firefox Nightly error messages to fix false failure
es6-shim 0.35.1 (12 May 2016)
- [Fix] Functions are objects (#418)
- [Fix] use
createDataPropertyOrThrow
in Array.from
, rather than [[Put]]
(#415)
- [Refactor] Use
iteratorResult
internally for iterator result objects
- [Refactor] Simplify logic for Math.tanh (#412)
- [Robustness] cache
Math
constants
- [Robustness] cache
Math.exp
- [Robustness] don’t rely on a
Math
lookup inside Math.asinh
- [Robustness] use cached
Number.isNaN
- [Robustness] cache
Math.sign
- [Dev Deps] update
es5-shim
, eslint
, @ljharb/eslint-config
, jscs
, uglify-js
, grunt-contrib-connect
, grunt-contrib-watch
, evalmd
, jshint
- [Tests] up to
node
v6.1
, v5.10
, v4.4
- [Tests]
npm run --silent
, use “pretest” for linting
- [Tests]
RegExp#toString
: Chrome Canary 51 produces /undefined/
- [Docs] update ES6 draft comment URLs to point to the published spec
es6-shim 0.35.0 (29 Feb 2016)
- [Breaking] remove
Reflect.enumerate
(#405)
- [New] Add
Array#indexOf
from post-ES6 errata
- [New] Ensure
RegExp#toString
is compliant
- [New] [sham] Add
Function#toString
to es6-sham
- [Fix] ensure that a non-object
globals.Reflect
doesn’t break the shim (#392)
- [Fix] In ES3 browsers (like Safari 4)
Reflect.getPrototypeOf
is undefined
- [Fix]
Object.keys
: handle regexes in ES3 browsers (#287)
- [Performance] Early exit from tanh for values outside of +-20 at limits of JS precision (#411)
- [Tests]
Function#name
on new Function
s is empty string in v8
- [Tests]
Function#name
is non-configurable pre-ES6
- [Tests] up to
node
v5.7
, v4.3
- [Docs] correct readme; we sham Function#name, not toString
es6-shim 0.34.4 (9 Feb 2016)
- [Fix] ‘Uncaught (in promise) TypeError’ in Chrome 48 (#408, #407)
- [Fix] handle the obscure case where
startsWith
throws on the second parameter (#399)
- [Tests] silence a promise rejection error in Chrome
es6-shim 0.34.3 (8 Feb 2016)
- [Fix] Suppress “uncaught rejection” warnings in Chrome 50 console (#403)
- [Fix] ensure ES3
Number
constants don’t get lost in ES3 browsers (#402)
- [Dev Deps] update
chai
, es5-shim
, jscs
, mocha
- [Tests] up to
node
v5.5
es6-shim 0.34.2 (22 Jan 2016)
- [Fix]
JSON.stringify
should ignore a replacer arg unless it’s an array or function.
- [Fix]
Array#copyWithin
: check for inherited properties as well
- [Fix]
Array#copyWithin
: should delete the target key if the source key is not present
- [Performance] Optimize Map/Set fast key path (#397)
- [Tests] fix
Reflect.enumerate
tests to not call next
too many times
- [Dev Deps] update
jscs
, jshint
- [Docs] update license year to 2016 (#400)
es6-shim 0.34.1 (5 Jan 2016)
- [Fix]
RegExp#[Symbol.search]
was broken with a regex argument (#394)
- [Fix] ensure that Set#clear works with both primitive and object values
- [Fix] static Promise methods have the wrong length in Firefox
- [Robustness] Cache
Object.keys
- [Performance] Avoid accessing arguments array without length check
- [Performance] Optimize ES.TypeIsObject (#388)
- [Performance] Promises: lots of improvements (#383)
- [Performance] Only use slow implementation of IsCallable where necessary (old browsers)
- [Performance] Promises: remove unnecessary
.bind
on setImmediate
- [Refactor] extract “decode fast Map key” logic
- [Dev Deps] update
s5-shim
, @ljharb/eslint-config
- Don’t npmignore tests
- [Tests] Fix a bug with “deep equal” wrt NaN
- [Tests] split up Map and Set test files
- [Tests] up to
node
v5.3
es6-shim 0.34.0 (14 Dec 2015)
- [Breaking] Remove
Symbol.species
from Promise.all
and Promise.race
(#34)
- [Fix] Firefox has enumerable Promise static methods
- [Fix] prevent crashes in older Firefox when checking if Array methods ToLength correctly
- [Fix]
Reflect.enumerate
: ensure correct property ordering in Firefox 19 (and likely others)
- [Fix] Ensure that
toLengthsCorrectly
returns true
when it passes, instead of undefined
- [Fix] Don’t call
Reflect.construct
unless it’s actually present
- [Fix] Ensure
Map
and Set
do not have an own constructor
property (#368)
- [Fix] Add missing checks to Promise.resolve and Promise.reject (#379)
- [Fix]
Map
: older v8s have a SameValueZero bug when a Map has a size > 4 (#378)
- [Fix]
Map
: when provided with an iterable that yields non-Object values, should throw
- [Fix]
Promise
: Make sure to shim broken implementations in Chrome 49 Canary
- [Fix]
Promise
: Chrome does not retrieve a thenable’s .then synchronously (#372)
- [New] Add
RegExp.prototype[Symbol.{match,search,split,replace}]
- [New] support
Symbol.match
in RegExp
constructor
- [New] add
Symbol.match
and ensure String#{match, startsWith, endsWith, includes}
support it
- [New] add
Symbol.split
and ensure String#split
supports it
- [New] add
Symbol.replace
and ensure String#replace
supports it
- [New] add
Symbol.search
and ensure String#search
supports it
- [Robustness] Add and use
ES.ToString
so as not to rely on the global String
- [Dev Deps] update
eslint
, jscs
, mocha
, uglify-js
, es5-shim
, grunt-saucelabs
- [Tests] bailing out of some tests when the feature isn’t present, to clean up native test failure output
- [Tests] up to
node
v5.2
- [Tests] fix
npm run test:native
- [Tests] Ensure
Promise.{reject,resolve}
throws when the receiver is a primitive (#379)
- [Tests] Further ensure that Promise.resolve/reject work with a non-promise receiver (#379)
- [Docs] update README URLs (#375)
- [Docs] fix some typos (#380)
es6-shim 0.33.13 (12 Nov 2015)
- [Fix]
Number
: when no arguments are passed, return +0
.
- [Fix]
Number
: Make sure string values are trimmed before attempting to parse.
- [Tests] cleaning up
Number
tests)
- [Dev Deps] update
uglify-js
es6-shim 0.33.12 (11 Nov 2015)
- [Fix] IE 8: more NFE madness.
- [Dev Deps] update
es5-shim
- [Docs] removing now-fixed
Number
caveat
- [Docs] use assertions so
evalmd
will test the readme better.
- [Docs] fix incorrect isFinite note (#373)
es6-shim 0.33.11 (9 Nov 2015)
- [Fix] handle future change of RegExp.prototype not being a regex (#370, #371)
- [Fix] disallow invalid hex strings in
Number
(#369)
- [Tests] Tweak “polluted prototype” approach
- [Dev Deps] update
chai
, es5-shim
, eslint
, @ljharb/eslint-config
, jscs
es6-shim 0.33.10 (2 Nov 2015)
- [Fix] the
Number
constructor properly trims (or not) whitespace characters (#368)
- [Fix]
Number('0b12')
and Number('0o18')
should both be NaN
(#366)
- [Tests] Fix npm upgrades in older nodes
- [Tests] add
npm run tests-only
- [Tests] on
node
v5.0
- [Tests] ensure
JSON.stringify
has the right name
- [Tests] add
npm run eslint
- [Dev Deps] update
es5-shim
, jscs
- [Cleanup] Rearrange things so that they’re defined before they’re used
- [Cleanup] Don’t reassign to function or catch parameters
- [Cleanup] Remove unused variables
- [Refactor] String#trim shim should use
defineProperty
, and check more non-whitespace chars
es6-shim 0.33.9 (29 Oct 2015)
- [Fix] IE 8:
Number(new Number(1))
was throwing. More NFE madness. (#365)
es6-shim 0.33.8 (23 Oct 2015)
- [Fix] IE 8:
Promise.resolve(2)
was throwing. More named function expression madness.
- [Tests] Reflect: Don’t attempt to define properties on this test object unless we’re in true ES5.
es6-shim 0.33.7 (23 Oct 2015)
- [Fix] Ensure
preserveToString
does not throw when the original does not exist (#359)
- [Fix]
Promise
: properly handle named function expressions in IE 8.
- [Fix]
Number
: wrapConstructor
now works in ES3 (#365)
- [Docs] Document
Number
supporting string binary and octal literals.
- [Tests] add commented-out test for
typeof Number.call(Object(3), 3) === 'number'
, which fails atm.
- [Tests] Fix browser tests sans-
npm install
- [Dev Deps] update
es5-shim
, jscs
, uglify-js
, chai
es6-shim 0.33.6 (29 Sep 2015)
- [Fix] In IE 6-8, of course,
typeof setTimeout
is “object”
- [Tests] Upgrade jQuery on the test HTML pages
es6-shim 0.33.5 (28 Sep 2015)
- [Fix] IE 6-8 have wacky scoping issues with named function expressions.
- [Fix] Apparently in IE 8, RegExp#test is an own property of regexes, not a prototype method
- [Fix] Make sure to treat
es5-sham
’s Object.defineProperty
as unsupported, in IE 8
es6-shim 0.33.4 (27 Sep 2015)
- [Fix] Add test, and fix, for
JSON.stringify(Object(Symbol()))
throwing on Chrome 45
- [Fix] Wrap
JSON.stringify
when Symbol
exists and it fails to serialize them correctly
- [Fix] fix
Reflect.defineProperty
on edge v0.12
- [Robustness] Cache
Array.isArray
internally
- [Refactor] Use internal
overrideNative
helper for String.prototype HTML methods
- [Refactor] Update
is-arguments
implementation; don’t call down legacy code path in modern engines
- [Tests] Add
evalmd
to verify that example code blocks are valid
- [Tests] Adding a test for Safari 7.1 and later (runtime check added in 8a8ddd36186cdc1fcb3fcc259ec9ecef1e141901)
- [Tests] Add additional
JSON.stringify
test for Symbol
and object Symbol
values
- [Tests] up to
io.js
v3.3
, node
v4.1
- [Dev Deps] update
es5-shim
, mocha
, chai
es6-shim 0.33.3 (31 Aug 2015)
- [Fix] Handle Firefox Nightly’s broken
construct
method
- [Tests] Add
JSON.stringify
tests for handling Symbol
s
es6-shim 0.33.2 (26 Aug 2015)
- [Fix] Make sure that minified code preserves function names.
- [Fix] Skip the
Promise
shim when setTimeout
is not available (#301)
- [Docs] Add note about
setPrototypeOf
on null objects
es6-shim 0.33.1 (20 Aug 2015)
- [New] Add support for binary and octal literals in strings to the
Number
constructor (#358)
- [Docs] Update spec link to final spec
- [Fix]
Reflect.enumerate
: does not necessarily wait until the first next()
to determine keys.
- [Refactors] split up some tests; name some functions; remove unnecessary code
- {Refactors] make ObjectIterator properties non-enumerable
- [Refactors] Refactor
RegExp
wrapping code so most of it can be reused.
- [Tests] up to
io.js
v3.1
- [Dev Deps] update
grunt-contrib-connect
, jscs
es6-shim 0.33.0 (30 Jul 2015)
- [Breaking] Avoid CSP errors in Chrome apps by using global var detection (#301)
- [Performance] Rearranging some of the Map/Set runtime shim clobberings to be more efficient.
- [Refactor] Implement
Array.of
directly, rather than in terms of Array.from
- [Dev Deps] Update
chai
, es5-shim
, promises-aplus-tests
, uglify-js
- [Tests] Add test for
Object.getPrototypeOf
accepting primitives.
- [Tests] Bail out of individual
Reflect
tests when the methods don’t exist
- [Tests] Test on latest
io.js
es6-shim 0.32.3 (21 Jun 2015)
- [Fix] Override or wrap native
Reflect
methods in Microsoft Edge v0.11 as required.
- [Fix] Edge v0.11:
Array.from([], undefined)
should not throw
- [Fix] Fix a bug in
Array.from handles iterables
runtime clobbering, which would always replace the native function
- [Fix] Ensure that
Set#has
has the correct name in Edge v0.11
- [Tests] Add
Map
/Set
error messages for Edge v0.11
- [Tests] Fix
Math.fround
test value for Edge v0.11
- [Tests] Bail out of
Map
/Set
test blocks if they don’t exist
- [Docs] Update ES5 subclassing instructions in the README.
- [Dev Deps] Update
es5-shim
es6-shim 0.32.2 (17 Jun 2015)
- [Fix]
Object.assign
with no sources should coerce to an object (#348)
- [Fix]
String#includes
should throw when given a RegExp
(#349)
- [Fix]
RegExp()
should not throw (#350)
- [Fix] Create
Value.defineByDescriptor
, fix create
when Object.create
is unavailable.
- [Compliance] Update
Promise.reject
to match official ECMA-262 spec.
- [Dev Deps] Update
es5-shim
es6-shim 0.32.1 (13 Jun 2015)
- [Fix] Make sure that all
Map
/Set
shim forms properly add an iterable to the collection instance.
- [Tests] Make sure none of the
Array
ToLength tests throw any error (#347)
es6-shim 0.32.0 (7 Jun 2015)
- [Spec compliance] Update Promises to match finalized ES6 spec (#345, #344, #239)
- [Fix] Ensure
Map
, Set
, and Promise
shims all throw when used without “new”.
- [Tests] Fix the pending exceptions test for Safari 5.1
- [Refactor] Since the String HTML shims will be iterated anyways, no need to defineProperties them twice.
- [Deps] Update
chai
, es5-shim
es6-shim 0.31.3 (2 Jun 2015)
- [Fix] Properly name more shim functions
- [Fix] Fix an IE bug where the layout engine internally calls the userland
Object.getOwnPropertyNames
- [Fix] Ensure
Map.prototype[Symbol.iterator] === Map.prototype.entries
- [Fix] Ensure
Set.prototype[Symbol.iterator] === Set.prototype.values
- [Tests]
Object.assign
pending exceptions: IE 9 preventExtensions
doesn’t throw, even in strict mode
- [Security] Cache more native methods in case they’re overwritten later
- [Tests] IE 11 has native
Map
/Set
, but it takes an optional function, not an optional iterable, in the constructor
- [Tests] Add more “exists” early bailouts, to declutter native test results
- [Docs] Alphabetize shim lists in the README
- [Perf] Add more
Map
/Set
fast paths for more primitives: boolean, null, undefined
- [Tests] Test up to
io.js
v2.2
- [Deps] Update
mocha
, es5-shim
, uglify-js
, jshint
- [Refactor] Style cleanups
es6-shim 0.31.2 (9 May 2015)
- Fix ES5
Array.prototype
method wrappers to return the correct value. (#341)
es6-shim 0.31.1 (7 May 2015)
RegExp
should work properly as a wrapper (#340)
es6-shim 0.31.0 (1 May 2015)
- All Array.prototype methods should use
ToLength
, not ToUint32
, on this.length
.
- Preserve and use original Array.prototype functions (for later shimming)
- Make String#{startsWith, endsWith, includes} tests a bit more granular.
- Fix Map/Set invalid receiver error messages for WebKit
- Update
grunt-saucelabs
, jscs
es6-shim 0.30.0 (26 Apr 2015)
Map
and Set
methods are not generic, and must only be called on valid Map
and Set
objects.
- Use the native
Number#clz
(in Safari 8, eg) inside Math.clz32
es6-shim 0.29.0 (26 Apr 2015)
- Test on
io.js
v1.7
and v1.8
- Ensure that shallowly wrapped Maps’ and Sets’ prototypes aren’t one level too far away.
- Update
chai
and use new matchers
- Avoid reassigning argument variables to avoid deoptimizations
- Ensure that ES3 browsers get both
Object.is
and Object.assign
- Improve
Object.assign
to avoid leaking arguments in v8
- Ensuring
Number.parseInt === parseInt
(failed in FF 37)
- a little more accurate Math.cbrt (#335)
- Test cleanups
- Adding
Symbol.unscopables
tests
- Adding tests to ensure that default iterators on builtins === the appropriate prototype function.
es6-shim 0.28.2 (13 Apr 2015)
Map
and Set
should have an arity of 0.
es6-shim 0.28.1 (12 Apr 2015)
- Ensure
Object.assign
only includes enumerable Symbols.
es6-shim 0.28.0 (12 Apr 2015)
- Ensure
Object.assign
also includes Symbols.
- Make sure to clobber Firefox 37’s very slow native Object.assign, that has “pending exception” logic.
- Adding much more granular Set/Map acceptance tests and replacements, to preserve as much of the original implementation as possible. (#326, #328)
- Lots of test additions and cleanup
- Fill in (and fix) missing name, arity, and enumerability tests.
- Using
property
matcher for a more helpful failure message.
- Make sure this test doesn’t fail if
Array#values
doesn’t exist yet.
- Make this
@@iterator
test not depend on Array#values
, and properly skip tests if the symbol isn’t available.
- Update
Math.fround
with a much smaller implementation (#332)
- Lock
uglify-js
down to v2.4.17, since v2.4.18 and v2.4.19 have a breaking change.
- Update
es5-shim
, mocha
, grunt-contrib-connect
, chai
, jshint
- IE 11 TP has a broken
String.raw
implementation
- Overwriting some imprecise Math functions on IE 11 TP.
- Overwrite
Math.imul
in Safari 8 to report the correct length.
- Fix Math.round for very large numbers
- Don’t rely on shims in tests, for better native failure checking.
- Shim
Object.is
in ES3 environments, and add tests.
- Test the native
Object.assign
prior to shimming it.
- Tweak the
travis-ci
config to make a separate “lint only” test run.
- Fix Firefox 4 test failures: ensure RegExp global aliases starting with “$” exist.
- more efficient Math.clz32 (#327)
- Fix Webkit nightly bugs with
Array.from
and Array.of
.
- Make sure shims that depend on
Number.isNaN
and Number.isFinite
will always work.
- The latest Webkit nightly has a bug with
String#includes
and a position arg of Infinity
.
- Webkit r181855 has a noncompliant
String#startsWith
and String#endsWith
- Clean up README; add more accurate note about
es5-shim
.
- Updating the
String.raw
code to be more in line with the changes in RC2/Rev 35 of the spec.
es6-shim 0.27.1 (5 Mar 2015)
- Revert
Array#slice
changes. (#322)
- Test on
io.js
v1.4
es6-shim 0.27.0 (26 Feb 2015)
- Overwrite
Array#slice
so that it supports Array subclasses.
- Improve
Map
/Set
TypeError
messages when called as a function. (#321)
es6-shim 0.26.1 (25 Feb 2015)
- Ensure
Array
/Array.prototype
functions have the correct name.
- Chrome 40 defines the incorrect name for
Array#values
- Make sure that
Array.of
works when subclassed.
es6-shim 0.26.0 (24 Feb 2015)
- Ensure that remaining Object static methods accept primitives.
- Update
chai
- Document
String.prototype
HTML methods and Reflect
methods in README
es6-shim 0.25.3 (22 Feb 2015)
- Removing nonexistent arguments from some String.prototype HTML methods
- All grade A-supported
node
/iojs
versions now ship with an npm
that understands ^
.
- Test on
iojs-v1.3
- Update
chai
- Add a LICENSE file
es6-shim 0.25.2 (18 Feb 2015)
- If someone (looking at you, chalk) has previously modified String.prototype with a non-function “bold”, don‘t break. (#315)
es6-shim 0.25.1 (18 Feb 2015)
- Add Annex B String.prototype HTML methods.
- Overwriting Annex B String.prototype HTML methods in IE 9, which both uppercases the tag names, and fails to escape double quotes.
- Overwriting Annex B String.prototype HTML methods in Safari 4-5, which fails to escape double quotes.
- Ensuring that Date#toString returns “Invalid Date” when the date‘s value is NaN.
- Test on
iojs-v1.2
es6-shim 0.25.0 (16 Feb 2015)
- Ensure Object.getOwnPropertyNames accepts primitives.
- Make sure the replaced
Object.keys
is non-enumerable.
- Clean up lots of tests to make failures easier to read, and false negatives less common
es6-shim 0.24.0 (5 Feb 2015)
- Improving accuracy of Math.expm1 values, and ensuring a shim on Linux FF 35, which reports an inaccurate value for Math.expm1(10).
- Fix bug from 7454db144e5aa251d599415cfb296b67aa3cf992 which prevented String#startsWith and String#endsWith from being overwritten in old Firefox.
- Improve tests across a wider list of browsers
- Ensure that individual Reflect methods are added when possible
- Add Reflect (#313)
- Fix node 0.11: it has an imprecise Math.sinh with very small numbers.
- Alter String#repeat RangeError message to align with Firefox’s native implementation.
es6-shim 0.23.0 (26 Jan 2015)
- Use Symbol.species when available, else fall back to “@@species” (renamed from “@@create”)
- Fix
npm run test-native
- Correct broken Math implementations:
log1p
, exmp1
, tanh
, acosh
, cosh
, sinh
, round
(#314)
- Update
jscs
, grunt-saucelabs
, jshint
es6-shim 0.22.2 (4 Jan 2015)
- Faster travis-ci builds
- Better ES3 support: quoting/avoiding reserved words
- Update
mocha
, jscs
, jshint
, grunt-saucelabs
, uglify-js
es6-shim 0.22.1 (13 Dec 2014)
- Make RegExp#flags generic, per spec (#310)
es6-shim 0.22.0 (12 Dec 2014)
- Add RegExp#flags
- Make
new RegExp
work with both a regex and a flags string
- Remove non-spec
Object.{getPropertyNames,getPropertyDescriptor}
es6-shim 0.21.1 (4 Dec 2014)
- Promise/Promise.prototype methods, and String#{startsWith,endsWith} are now not enumerable
- Array#{keys, values, entries} should all be @@unscopeable in browsers that support that
- Ensure that tampering with Function#{call,apply} won’t break internal methods
- Add Math.clz32, RegExp tests
- Update es6-sham UMD
- Update
chai
, es5-shim
, grunt-saucelabs
, jscs
es6-shim 0.21.0 (21 Nov 2014)
- String#contains → String#includes per 2014-11-19 TC39 meeting
- Use an invalid identifier as the es6-shim iterator key, so it doesn’t show up in the console as easily.
es6-shim 0.20.4 (20 Nov 2014)
- Performance improvements: avoid slicing arguments, avoid
Function#call
when possible
- Name
String.{fromCodePoint,raw}
for debugging
- Fix
String.raw
to match spec
- Ensure Chrome’s excess Promise methods are purged
- Ensure
Set#keys === Set#values
, per spec
es6-shim 0.20.3 (19 Nov 2014)
- Fix Set#add and Map#set to always return “this” (#302)
- Clarify TypeError messages thrown by Map/Set
- Fix Chrome 38 bug with Array#values
es6-shim 0.20.2 (28 Oct 2014)
es6-shim 0.20.1 (27 Oct 2014)
- Set#delete and Map#delete should return false unless a deletion occurred. (#298)
es6-shim 0.20.0 (26 Oct 2014)
- Use a more reliable UMD
- export the global object rather than undefined
es6-shim 0.19.2 (25 Oct 2014)
- Set#delete and Map#delete should return a boolean indicating success. (#298)
- Make style consistent; add jscs
es6-shim 0.19.1 (14 Oct 2014)
- Fix Map#set and Set#add to be chainable (#295)
- Update mocha
es6-shim 0.19.0 (9 Oct 2014)
- Detect and override noncompliant Map in Firefox 32 (#294)
- Fix Map and Set for engines that don’t preserve numeric key order (#292, #290)
- Detect and override noncompliant Safari 7.1 Promises (#289)
- Fix Array#keys and Array#entries in Safari 7.1
- General style and whitespace cleanup
- Update dependencies
- Clean up tests for ES3 by removing reserved words
es6-shim 0.18.0 (6 Sep 2014)
- Speed up String#trim replacement (#284)
- named Array#find and Array#findIndex for easier debugging
- Replace broken native implementation in Firefox 25-31 for Array#find and Array#findIndex
- Ensure String.fromCodePoint has the correct length in Firefox
- List the license in
package.json
for npm
- Array.from: fix spec bug with Array.from([], undefined) throwing
- Array.from: fix Firefox Array.from bug wrt swallowing negative lengths vs throwing
es6-shim 0.17.0 (31 Aug 2014)
- Added es6-sham (#281)
- Fixing some flaky tests (#268)
- Tweaking how ArrayIterator is checked in its “next” function
- Cleaning up some of the logic in Array.from
es6-shim 0.16.0 (6 Aug 2014)
- Array#find and Array#findIndex: no longer skips holes in sparse arrays, per https://bugs.ecmascript.org/show_bug.cgi?id=3107
es6-shim 0.15.1 (5 Aug 2014)
- Array.from: now correctly throws if provided
undefined
as a mapper function
- Array.from: now correctly works if provided a falsy
thisArg
-
Fix tests so they work properly when Array#(values |
keys |
entries) are not present |
- Add
npm run lint
to run style checks independently
- Add
test/native.html
so browsers can be easily checked for shim-less compliance.
es6-shim 0.15.0 (31 Jul 2014)
- Object.assign no longer throws on null or undefined sources, per https://bugs.ecmascript.org/show_bug.cgi?id=3096
es6-shim 0.14.0 (20 Jul 2014)
- Properly recognize Symbol.iterator when it is present (#277)
- Fix Math.clz’s improper handling of values that coerce to NaN (#269)
- Fix incorrect handling of negative end index on Array#fill (#270)
- Removed Object.getOwnPropertyKeys, which shouldn’t be anywhere (#267)
- Fixed arity of Map and Set constructors, per 2014.04.27 draft spec (rev 24)
- Added a full additional suite of ES6 promise tests (thanks to @smikes!) (#265)
- Make Number.isInteger a bit more efficient (#266)
- Added
npm run test-native
to expose how broken implementations are without the shim ;-)
- Added additional tests
es6-shim 0.13.0 (11 Jun 2014)
- Adapt to new Array.from changes: mapper function is now called with both value and index (#261, #262)
- More reliably getting the global object in strict mode to fix node-webkit (#258, #259)
- Properly test the global Promise for ignoring non-function callbacks (#258)
es6-shim 0.12.0 (4 Jun 2014)
- Fix String#trim implementations that incorrectly trim \u0085
- Stop relying on ArrayIterator being a public var, fixing Safari 8
es6-shim 0.11.1 (2 Jun 2014)
- Make sure to shim Object.assign in all environments, not just true ES5
- Now including minified file and source map
es6-shim 0.11.0 (11 May 2014)
- Remove
Object.getOwnPropertyDescriptors
, per spec. (#234, #235)
- IE8 fixes. (#163, #236)
- Improve
Promise
scheduling. (#231)
- Add some more standalone shims
- Use an Object.create fallback, for better ES3 compatibility
- Fix Math.expm1 in more browsers (#84)
- Fix es6-shim in Web Workers (#247, #248)
- Correct Object.assign to take multiple sources (#241)
es6-shim 0.10.1 (13 Mar 2014)
- Update bower.json, component.json, and .npmignore (#229, #230, #233)
- Minor updates to
Promise
implementation and test suite.
- Workaround lack of “strict mode” in IE9. (#232)
es6-shim 0.10.0 (1 March 2014)
- Implement
Promise
, per spec. (#209, #215, #224, #225)
- Make
Map
/Set
subclassable; support iterable
argument to
constructor (#218)
- Rename
Number#clz
to Math.clz32
(#217)
- Bug fixes to
Array#find
and Array#findIndex
on sparse arrays (#213)
- Re-add
Number.isInteger
(mistakenly removed in 0.9.0)
- Allow use of
arguments
as an iterable
- Minor spec-compliance fixes for
String.raw
- In ES6,
Object.keys
accepts non-Object types (#220)
- Improved browser compatibility with IE 9/10, Opera 12 (#225)
es6-shim 0.9.3 (5 February 2014)
- Per spec, removed
Object.mixin
(#192)
- Per spec, treat -0 and +0 keys as identical in Map/Set (#129, #204)
- Per spec,
ArrayIterator
/Array#values()
skips sparse indexes now. (#189)
- Added
Array.from
, supporting Map/Set/Array/String iterators (the String iterator iterates over codepoints, not indexes) (#182)
- Bug fixes to Map/Set iteration after concurrent delete. (#183)
- Bug fixes to
Number.clz
: 0 and 0x100000000 are handled correctly now. (#196)
- Added
Math.fround
to truncate to a 32-bit floating point number. (#140)
- Bug fix for
Math.cosh
(#178)
- Work around Firefox bugs in
String#startsWith
and String#endsWith
(#172)
- Work around Safari bug in
Math.imul
es6-shim 0.9.2 (18 December 2013)
- Negative
String#endsWith
position is now handled properly.
TypeError
is now thrown when string methods are called
on null
/ undefined
.
es6-shim 0.9.1 (28 October 2013)
- Added
Array#copyWithin
and Number.MIN_SAFE_INTEGER
- Big speed-up of Maps / Sets for string / number keys:
they are O(1) now.
- Changed
Math.hypot
according to spec.
- Other small fixes.
es6-shim 0.9.0 (30 August 2013)
- Added Array iteration methods:
Array#keys
, Array#values
, Array#entries
, which return an ArrayIterator
- Changed
Map
and Set
constructors to conform to spec when called without new
- Added
Math.imul
- Per spec, removed
Number.toInteger
, Number.isInteger
, and Number.MAX_INTEGER
; added Number.isSafeInteger
, Number.MAX_SAFE_INTEGER
- Added extensive additional tests for many methods
es6-shim 0.8.0 (8 June 2013)
- Added
Object.setPrototypeOf
, Set#keys
, Set#values
, Map#keys
, Map#values
, Map#entries
, Set#entries
.
- Fixed
String#repeat
according to spec.
es6-shim 0.7.0 (2 April 2013)
- Added
Array#find
, Array#findIndex
, Object.assign
, Object.mixin
,
Math.cbrt
, String.fromCodePoint
, String#codePointAt
.
- Removed
Object.isnt
.
- Made Math functions fully conform spec.
es6-shim 0.6.0 (15 January 2013)
- Added
Map#keys
, Map#values
, Map#size
, Set#size
, Set#clear
.
es6-shim 0.5.3 (2 September 2012)
- Made
String#startsWith
, String#endsWith
fully conform spec.
es6-shim 0.5.2 (17 June 2012)
- Removed
String#toArray
and Object.isObject
as per spec updates.
es6-shim 0.5.1 (14 June 2012)
- Made Map and Set follow Spidermonkey implementation instead of V8.
var m = Map(); m.set('key', void 0); m.has('key');
now gives true.
es6-shim 0.5.0 (13 June 2012)
- Added Number.MAX_INTEGER, Number.EPSILON, Number.parseInt,
Number.parseFloat, Number.prototype.clz, Object.isObject.
es6-shim 0.4.1 (11 May 2012)
- Fixed boundary checking in Number.isInteger.
es6-shim 0.4.0 (8 February 2012)
- Added Math.log10, Math.log2, Math.log1p, Math.expm1, Math.cosh,
Math.sinh, Math.tanh, Math.acosh, Math.asinh, Math.atanh, Math.hypot,
Math.trunc.
es6-shim 0.3.1 (30 January 2012)
es6-shim 0.3.0 (27 January 2012)
- Added Number.isFinite() and Object.isnt().
es6-shim 0.2.1 (7 January 2012)
- Fixed a bug in String#endsWith().
es6-shim 0.2.0 (25 December 2011)
- Added browser support.
- Added tests.
- Added Math.sign().
es6-shim 0.1.0 (25 December 2011)