- [Fix]
RegExp#toString
: should not have an object.prototype
- [Refactor] minimize dynamic lookups of
__proto__
- [Dev Deps] update
@ljharb/eslint-config
,tape
- [Fix] in WSH,
Object.getPrototypeOf([].values())
is falsy (#466) - [Refactor] remove unused
ES.IsIterable
function - [patch] make iterator bookkeeping properties non-enumerable when possible
- [readme] updating standalone shim links
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,aud
,es5-shim
,safe-publish-latest
,tape
- [actions] update codecov uploader
- [actions] add Automatic Rebase and Require Allow Edits workflows
- [Tests] migrate tests to Github Actions (#469)
- [Tests] disable crashing on unhandled rejections in node >= 15
- [Tests] use
nyc
- [actions] reuse common workflows
- [eslint] fix
operator-linebreak
- [eslint] fix warnings
- [Tests] add more error message variations
- [Tests] disable unhandled rejection warnings
- [Fix]
Math.hypot
: fix a bug in node v12.11 - v12.15 - [Fix] internal
ToString
operation should throw on Symbols - [Robustness] call-bind
Array.prototype.join
- [Refactor]
String.raw
: match latest spec - [Refactor] address unused function args
- [readme] updating standalone shim links
- [Meta] Make LICENSE parseable by GitHub.
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,es5-shim
,safe-publish-latest
,evalmd
- [Tests] use shared travis-ci configs
- [Tests] only run prepublish when in publish
- [Tests] add
aud
innpm run posttest
- [Tests] add failing tests from tc39/test262#2443
- [Tests] fix error message tests for Safari 12
- [Tests] fix sham function name tests
- [Fix]
es6-sham
:Function.prototype.name
: don’t poison the getter when the receiver isFunction.prototype
(#454) - [Dev Deps] update
eslint
,@ljharb/eslint-config
- [Dev Deps] remove
jscs
andjshint
- [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
→ workingwithinULPDistance
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)
- [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
- [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
- [Fix] Functions are objects (#418)
- [Fix] use
createDataPropertyOrThrow
inArray.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 insideMath.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
- [Breaking] remove
Reflect.enumerate
(#405) - [New] Add
Array#indexOf
from post-ES6 errata - [New] Ensure
RegExp#toString
is compliant - [New] [sham] Add
Function#toString
toes6-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
onnew 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
- [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
- [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
- [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 callnext
too many times - [Dev Deps] update
jscs
,jshint
- [Docs] update license year to 2016 (#400)
- [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
onsetImmediate
- [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
- [Breaking] Remove
Symbol.species
fromPromise.all
andPromise.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
returnstrue
when it passes, instead ofundefined
- [Fix] Don't call
Reflect.construct
unless it's actually present - [Fix] Ensure
Map
andSet
do not have an ownconstructor
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
inRegExp
constructor - [New] add
Symbol.match
and ensureString#{match, startsWith, endsWith, includes}
support it - [New] add
Symbol.split
and ensureString#split
supports it - [New] add
Symbol.replace
and ensureString#replace
supports it - [New] add
Symbol.search
and ensureString#search
supports it - [Robustness] Add and use
ES.ToString
so as not to rely on the globalString
- [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)
- [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
- [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)
- [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
- [Fix] the
Number
constructor properly trims (or not) whitespace characters (#368) - [Fix]
Number('0b12')
andNumber('0o18')
should both beNaN
(#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
- [Fix] IE 8:
Number(new Number(1))
was throwing. More NFE madness. (#365)
- [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.
- [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
- [Fix] In IE 6-8, of course,
typeof setTimeout
is "object" - [Tests] Upgrade jQuery on the test HTML pages
- [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
'sObject.defineProperty
as unsupported, in IE 8
- [Fix] Add test, and fix, for
JSON.stringify(Object(Symbol()))
throwing on Chrome 45 - [Fix] Wrap
JSON.stringify
whenSymbol
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 forSymbol
and objectSymbol
values - [Tests] up to
io.js
v3.3
,node
v4.1
- [Dev Deps] update
es5-shim
,mocha
,chai
- [Fix] Handle Firefox Nightly's broken
construct
method - [Tests] Add
JSON.stringify
tests for handlingSymbol
s
- [Fix] Make sure that minified code preserves function names.
- [Fix] Skip the
Promise
shim whensetTimeout
is not available (#301) - [Docs] Add note about
setPrototypeOf
on null objects
- [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 firstnext()
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
- [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 ofArray.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
- [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
- [Fix]
Object.assign
with no sources should coerce to an object (#348) - [Fix]
String#includes
should throw when given aRegExp
(#349) - [Fix]
RegExp()
should not throw (#350) - [Fix] Create
Value.defineByDescriptor
, fixcreate
whenObject.create
is unavailable. - [Compliance] Update
Promise.reject
to match official ECMA-262 spec. - [Dev Deps] Update
es5-shim
- [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)
- [Spec compliance] Update Promises to match finalized ES6 spec (#345, #344, #239)
- [Fix] Ensure
Map
,Set
, andPromise
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
- [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 9preventExtensions
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
- Fix ES5
Array.prototype
method wrappers to return the correct value. (#341)
RegExp
should work properly as a wrapper (#340)
- All Array.prototype methods should use
ToLength
, notToUint32
, onthis.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
Map
andSet
methods are not generic, and must only be called on validMap
andSet
objects.- Use the native
Number#clz
(in Safari 8, eg) insideMath.clz32
- Test on
io.js
v1.7
andv1.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
andObject.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.
Map
andSet
should have an arity of 0.
- Ensure
Object.assign
only includes enumerable Symbols.
- 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 onArray#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
andArray.of
. - Make sure shims that depend on
Number.isNaN
andNumber.isFinite
will always work. - The latest Webkit nightly has a bug with
String#includes
and a position arg ofInfinity
. - Webkit r181855 has a noncompliant
String#startsWith
andString#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.
- Revert
Array#slice
changes. (#322) - Test on
io.js
v1.4
- Overwrite
Array#slice
so that it supports Array subclasses. - Improve
Map
/Set
TypeError
messages when called as a function. (#321)
- 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.
- Ensure that remaining Object static methods accept primitives.
- Update
chai
- Document
String.prototype
HTML methods andReflect
methods in README
- Removing nonexistent arguments from some String.prototype HTML methods
- All grade A-supported
node
/iojs
versions now ship with annpm
that understands^
. - Test on
iojs-v1.3
- Update
chai
- Add a LICENSE file
- If someone (looking at you, chalk) has previously modified String.prototype with a non-function “bold”, don‘t break. (#315)
- 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
- 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
- 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.
- 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
- Faster travis-ci builds
- Better ES3 support: quoting/avoiding reserved words
- Update
mocha
,jscs
,jshint
,grunt-saucelabs
,uglify-js
- Make RegExp#flags generic, per spec (#310)
- Add RegExp#flags
- Make
new RegExp
work with both a regex and a flags string - Remove non-spec
Object.{getPropertyNames,getPropertyDescriptor}
- 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
- 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.
- 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
- 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
- Fix AMD (#299)
- Set#delete and Map#delete should return false unless a deletion occurred. (#298)
- Use a more reliable UMD
- export the global object rather than undefined
- Set#delete and Map#delete should return a boolean indicating success. (#298)
- Make style consistent; add jscs
- Fix Map#set and Set#add to be chainable (#295)
- Update mocha
- 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
- 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
fornpm
- Array.from: fix spec bug with Array.from([], undefined) throwing
- Array.from: fix Firefox Array.from bug wrt swallowing negative lengths vs throwing
- 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
- Array#find and Array#findIndex: no longer skips holes in sparse arrays, per https://bugs.ecmascript.org/show_bug.cgi?id=3107
- 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.
- Object.assign no longer throws on null or undefined sources, per https://bugs.ecmascript.org/show_bug.cgi?id=3096
- 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
- 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)
- Fix String#trim implementations that incorrectly trim \u0085
- Stop relying on ArrayIterator being a public var, fixing Safari 8
- Make sure to shim Object.assign in all environments, not just true ES5
- Now including minified file and source map
- 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)
- 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)
- Implement
Promise
, per spec. (#209, #215, #224, #225) - Make
Map
/Set
subclassable; supportiterable
argument to constructor (#218) - Rename
Number#clz
toMath.clz32
(#217) - Bug fixes to
Array#find
andArray#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)
- 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
andString#endsWith
(#172) - Work around Safari bug in
Math.imul
- Negative
String#endsWith
position is now handled properly. TypeError
is now thrown when string methods are called onnull
/undefined
.
- Added
Array#copyWithin
andNumber.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.
- Added Array iteration methods:
Array#keys
,Array#values
,Array#entries
, which return anArrayIterator
- Changed
Map
andSet
constructors to conform to spec when called withoutnew
- Added
Math.imul
- Per spec, removed
Number.toInteger
,Number.isInteger
, andNumber.MAX_INTEGER
; addedNumber.isSafeInteger
,Number.MAX_SAFE_INTEGER
- Added extensive additional tests for many methods
- Added
Object.setPrototypeOf
,Set#keys
,Set#values
,Map#keys
,Map#values
,Map#entries
,Set#entries
. - Fixed
String#repeat
according to spec.
- Added
Array#find
,Array#findIndex
,Object.assign
,Object.mixin
,Math.cbrt
,String.fromCodePoint
,String#codePointAt
. - Removed
Object.isnt
. - Made Math functions fully conform spec.
- Added
Map#keys
,Map#values
,Map#size
,Set#size
,Set#clear
.
- Made
String#startsWith
,String#endsWith
fully conform spec.
- Removed
String#toArray
andObject.isObject
as per spec updates.
- Made Map and Set follow Spidermonkey implementation instead of V8.
var m = Map(); m.set('key', void 0); m.has('key');
now gives true.
- Added Number.MAX_INTEGER, Number.EPSILON, Number.parseInt, Number.parseFloat, Number.prototype.clz, Object.isObject.
- Fixed boundary checking in Number.isInteger.
- 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.
- Added IE8 support.
- Added Number.isFinite() and Object.isnt().
- Fixed a bug in String#endsWith().
- Added browser support.
- Added tests.
- Added Math.sign().
- Initial release