v3.8.1

@leebyron leebyron released this Apr 18, 2016 · 61 commits to master since this release

Minor touch ups discovered after the last release, plus a few more bug fixes! Plus, you can now contribute to immutable-js using the latest version of node.

New:

  • The methods keyOf, findKey, lastKeyOf, and findLastKey were moved from KeyedIterable to Iterable, so they may be also used on Lists and Sets. (#740)

Fixes:

  • Some issues with the flow definitions have been polished out thanks to @marudor. (#840, #841, #845)
  • Collections which contain Symbol keys or values can now be stringified. (#620)
  • Negative indexing into the keySeq of an IndexedIterable returns correct results. (#811)
  • Can use the value Infinity as a key in a Collection without crashing. (#797)

Downloads

v3.8.0

@leebyron leebyron released this Apr 16, 2016 · 108 commits to master since this release

Whoa, a new version of Immutable! The big news is that we now export types for both Flow and TypeScript in the npm module! Also that pesky length warning has finally been fully removed. There are also a good amount of small bug fixes and performance improvements. Finally, the API docs have been improved greatly! Check it out http://facebook.github.io/immutable-js/docs/.

A huge huge thanks to everyone in the community for contributing these improvements. The large majority of work cited below is community contributions.

New:

  • Now exports Flow types (#805)
  • Now exports typings for TypeScript use. (#808)
  • Cursor TypeScript definitions (#765)
  • No longer warns when accessing length property of a collection. (88f880f)
  • Map.of() takes key, value interleaved pairs (#727)
  • findEntry and findLastEntry now respect notSetValue argument (#822)

Fixes:

  • Iterable::take(Infinity) takes infinitely instead of 0 (#834)
  • Proper toOrderedMap and toOrderedSet method definitions (#761)
  • Records return themselves for no-op Record#set calls for better performance (#795)
  • Range#toString propertly reports step (#759)
  • Add missing Set#contains (96b0946)

Downloads

3.7.6

@leebyron leebyron released this Dec 16, 2015 · 192 commits to master since this release

A few minor bug fixes:

  • Fixed issue where lastIndexOf did not always return the correct value #703
  • mergeDeep now has more opportunities to for the "return self" optimization, saving memory #690
  • The TypeScript .d.ts file now aligns with the outputted file for the variations of Immutable Iterables. #647
  • Ensure behavior for slice(0, NaN) is equivalent to that of JS Array #623
  • Ensure ES6 Symbol can be properly hashed #579

And a new API method:

  • myList.insert() #402

Downloads

3.7.5

@leebyron leebyron released this Sep 2, 2015 · 224 commits to master since this release

Many stability improvements thanks to excellent community submitted fixes.

New:

  • Cursor can now set(value) #516 to replace the value at the cursor.

Fixes:

  • Ensure all tests pass in node v0.12
  • All operations that accept indicies now use ECMA's algorithm for converting input to integers when possible. #545 #598
  • Fix issue where slice/splice with non-number arguments could result in infinite recursion. #511
  • Clearer documentation regarding creating Map from JS Obj #589
  • Immutable now exported as a TypeScript module #567
  • Trailing commas causing issues in IE8 #510
  • Fix memory leak from setSize() and slice() #540
  • Union and Merge of Map or Set always favors the type of the left hand side #515

Downloads

3.7.4

@leebyron leebyron released this Jun 17, 2015 · 270 commits to master since this release

Fixes:

  • isSuperset can be called with an array of values.

New:

  • contrib/Cursor has proper support for Record
  • tsc will pick up type definitions from node modules

Downloads

3.7.3

@leebyron leebyron released this May 20, 2015 · 282 commits to master since this release

Fixes:

  • Improvements to documentation around equality, hasIn and withMutations
  • Iterating over empty slice no longer throws.
  • Merge deep methods no longer throw if deep position is not mergeable.

Downloads

3.7.2

@leebyron leebyron released this Apr 10, 2015 · 298 commits to master since this release

  • Updated PATENTS to v2.
  • Minor improvements to docs and Readme

Downloads

3.7.1

@leebyron leebyron released this Mar 29, 2015 · 303 commits to master since this release

New:

  • contains() is now called includes() to match the ES6 specification. contains() still exists as an alias.

Downloads

3.7.0

@leebyron leebyron released this Mar 27, 2015 · 307 commits to master since this release

New:

  • merge() family of functions now get the currently merging key as a 3rd argument, in case merge strategy should alter based on key.
  • IndexedCursor now has push(), pop(), unshift() and shift() to more closely mirror List.
  • Records initialize lazily. Creating a new Record type with Record({foo:"bar"}) involves a small bit of work. For applications with a large amount of Records, lazy initialization should help startup times.
  • Maps can now be constructed by a List of Lists instead of only a List of Arrays.
  • toString() prints Map string keys in quotes.

Fixes:

  • is() allows usage of valueOf to return primitives without recursing or encountering a reference error.
  • merge()/union() work inside withMutations when initial collection is empty. #405
  • Producing subcursors using cursor.cursor() now returns a proper typed cursor. #381
  • When a Record is passed to the same Record creation function, it's now returned directly.
  • Ensure Records toString() correctly. #383
  • Iterating over a sliced Seq can no longer cause an infinite recursion. #394
  • Ensure we don't throw when hashing non-extensible object in a modern environment.
  • Fix issue where non-existent function could be called if a collection doesn't have a size.

Downloads

3.6.4

@leebyron leebyron released this Mar 8, 2015 · 346 commits to master since this release

Fixes:

  • 3.6.3 was a broken npm release.

Downloads