Skip to content

Releases: paulmillr/es6-shim

v0.34.1

05 Jan 17:51
Compare
Choose a tag to compare

Fixes

  • RegExp#[Symbol.search] was broken with a regex argument (#394)
  • ensure that Set#clear works with both primitive and object values
  • static Promise methods have the wrong length in Firefox

Robustness

  • Cache Object.keys

Performance

  • Avoid accessing arguments array without length check
  • Optimize ES.TypeIsObject (#388)
  • Promises: lots of improvements (#383)
  • Only use slow implementation of ES.IsCallable where necessary (old browsers)
  • Promises: remove unnecessary .bind on setImmediate

Dev Deps

  • update s5-shim, @ljharb/eslint-config

Tests

  • Don’t npmignore tests
  • Fix a bug with “deep equal” wrt NaN
  • split up Map and Set test files
  • test up to node v5.3

v0.34.0

15 Dec 01:23
Compare
Choose a tag to compare

Fix All The Things Release

Breaking Changes

  • Remove Symbol.species from Promise.all and Promise.race (#34) per ES6 errata

Fixes (shim)

  • Firefox has enumerable Promise static methods
  • prevent crashes in older Firefox when checking if Array methods ToLength correctly
  • Reflect.enumerate: ensure correct property ordering in Firefox 19 (and likely others)
  • Ensure that toLengthsCorrectly returns true when it passes, instead of undefined
  • Don't call Reflect.construct unless it's actually present
  • Ensure Map and Set do not have an own constructor property (#368)
  • Add missing checks to Promise.resolve and Promise.reject (#379)
  • Map: older v8s have a SameValueZero bug when a Map has a size > 4 (#378)
  • Map: when provided with an iterable that yields non-Object values, should throw
  • Promise: Make sure to shim broken implementations in Chrome 49 Canary
  • Promise: Chrome does not retrieve a thenable's .then synchronously (#372)

New Stuff

  • Add RegExp.prototype[Symbol.{match,search,split,replace}]
  • support Symbol.match in RegExp constructor
  • add Symbol.match and ensure String#{match, startsWith, endsWith, includes} support it
  • add Symbol.split and ensure String#split supports it
  • add Symbol.replace and ensure String#replace supports it
  • 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

  • bail out of some tests when the feature isn't present, to clean up native test failure output
  • test up to node v5.1
  • fix npm run test:native
  • Ensure Promise.{reject,resolve} throws when the receiver is a primitive (#379)
  • Further ensure that Promise.resolve/reject work with a non-promise receiver (#379)

Docs

  • update README URLs (#375)
  • fix some typos (#380)

v0.33.13

15 Dec 01:21
Compare
Choose a tag to compare

Fixes (shim)

  • Number: when no arguments are passed, return +0.
  • Number: Make sure string values are trimmed before attempting to parse.

Tests

  • cleaning up Number tests)

Dev Deps

  • update uglify-js

v0.33.12

11 Nov 19:40
Compare
Choose a tag to compare

Fix (shim)

Dev Deps

  • update es5-shim

Docs

  • removing now-fixed Number caveat
  • use assertions so evalmd will test the readme better.
  • fix incorrect isFinite note (#373)

v0.33.11

10 Nov 01:10
Compare
Choose a tag to compare

Future ES6 Fix, currently in Chrome Canary

  • 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

v0.33.10

02 Nov 08:39
Compare
Choose a tag to compare

Fixes (shim)

  • the Number constructor properly trims (or not) whitespace characters (#368)
  • Number('0b12') and Number('0o18') should both be NaN (#366)

Tests

  • Fix npm upgrades in older nodes
  • add npm run tests-only
  • test on node v5.0
  • ensure JSON.stringify has the right name
  • add npm run eslint

Dev Deps

  • update es5-shim, jscs

Cleanup

  • Rearrange things so that they’re defined before they’re used
  • Don't reassign to function or catch parameters
  • Remove unused variables
  • String#trim shim should use defineProperty, and check more non-whitespace chars

v0.33.9

02 Nov 08:35
Compare
Choose a tag to compare

Fix (shim)

  • IE 8: Number(new Number(1)) was throwing. More NFE madness (#365)

v0.33.8

23 Oct 18:42
Compare
Choose a tag to compare

Fix (shim)

  • 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.

v0.33.7

23 Oct 09:31
Compare
Choose a tag to compare

Fixes (shim)

  • Ensure preserveToString does not throw when the original does not exist (#359)
  • Promise: properly handle named function expressions in IE 8.
  • 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.
  • Fix browser tests sans-npm install

Dev Deps

  • update es5-shim, jscs, uglify-js, chai

v0.33.6

29 Sep 07:30
Compare
Choose a tag to compare

Fixes

  • In IE 6-8, of course, typeof setTimeout is "object". Fixes Promise.

Tests

  • Upgrade jQuery on the test HTML pages, which removes a deprecation warning.