Skip to content

Releases: paulmillr/es6-shim

v0.31.3

02 Jun 21:43
Compare
Choose a tag to compare

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 9 preventExtensions 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

09 May 22:22
Compare
Choose a tag to compare

Bugfix

  • Ensure that wrapped ES5 Array.prototype methods return the proper value. (#341)

v0.31.1

07 May 17:48
Compare
Choose a tag to compare

Bugfix

  • RegExp should work properly as a wrapper (#340)

v0.31.0

01 May 07:47
Compare
Choose a tag to compare

New shims:

  • All Array.prototype methods should use ToLength, not ToUint32, on this.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

27 Apr 04:30
Compare
Choose a tag to compare

Breaking change

  • Map and Set prototype methods are not generic, and must only be called on valid Map and Set objects.

Performance

  • Use the native Number#clz (in Safari 8, eg) inside Math.clz32

v0.29.0

26 Apr 19:50
Compare
Choose a tag to compare

Why the minor version was bumped

  • Ensure that ES3 browsers get both Object.is and Object.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 and v1.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

26 Apr 19:48
Compare
Choose a tag to compare
  • Map and Set should have an arity of 0.

v0.28.1

12 Apr 21:08
Compare
Choose a tag to compare

v0.28.0

12 Apr 16:47
Compare
Choose a tag to compare
  • 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.

v0.27.1

08 Mar 20:33
Compare
Choose a tag to compare
  • Revert Array#slice changes. (#322)
  • Test on io.js v1.4