Releases: paulmillr/es6-shim
Releases · paulmillr/es6-shim
v0.31.3
Fixes
- Properly name more shim functions
- Fix an IE bug where the layout engine internally calls the userland
Object.getOwnPropertyNames
(#333) - Ensure
Map.prototype[Symbol.iterator] === Map.prototype.entries
- Ensure
Set.prototype[Symbol.iterator] === Set.prototype.values
Security/Robustness
- - Cache more native methods in case they're overwritten later
Performance
- Add more
Map
/Set
fast paths for more primitives: boolean, null, undefined
Tests
Object.assign
pending exceptions: IE 9preventExtensions
doesn't throw, even in strict mode- IE 11 has native
Map
/Set
, but it takes an optional function, not an optional iterable, in the constructor - Add more "exists" early bailouts, to declutter native test results
- Test up to
io.js
v2.2
Docs
- Alphabetize shim lists in the README
Dependencies
- Update
mocha
,es5-shim
,uglify-js
,jshint
Refactoring
- Style cleanups
v0.31.2
v0.31.1
v0.31.0
New shims:
- All
Array.prototype
methods should useToLength
, notToUint32
, onthis.length
. - Preserve and use original ES5
Array.prototype
functions (for later shimming)
Tests:
- Make
String#{startsWith, endsWith, includes}
tests a bit more granular. - Fix
Map
/Set
invalid receiver error messages for WebKit
Dependencies:
- Update
grunt-saucelabs
,jscs
v0.30.0
v0.29.0
Why the minor version was bumped
- Ensure that ES3 browsers get both
Object.is
andObject.assign
- Ensuring
Number.parseInt === parseInt
(failed in FF 37)
Enhancements
- Improve
Object.assign
to avoid leaking arguments in v8 - a little more accurate Math.cbrt (#335)
- Avoid reassigning argument variables to avoid deoptimizations
- Ensure that shallowly wrapped Maps’ and Sets’ prototypes aren't one level too far away.
Testing
- Test on
io.js
v1.7
andv1.8
- Update
chai
and use new matchers - Test cleanups
- Adding
Symbol.unscopables
tests - Adding tests to ensure that default iterators on builtins === the appropriate prototype function.
v0.28.2
v0.28.1
- Ensure
Object.assign
only includes enumerable Symbols. (dc23efa#commitcomment-10684061)
v0.28.0
- 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.