immutable v4.0.0-rc.10 Release Notes

Release Date: 2018-09-19 // over 5 years ago
  • ๐Ÿš€ It's been a long time since the last release candidate, but quite a bit of work has happened since the last once. One step closer to a final release!

    ๐Ÿ’ฅ Breaking:

    • โœ‚ Remove IteratorSequence. Do not attempt to detect iterators in Seq(). (#1589)

    Iterables can still be provided to Seq(), and most Iterators are also
    Iterables, so this change should not affect the vast majority of uses.
    ๐Ÿ‘€ > For more information, see PR #1589

    • Node buffers no longer considered value-equal

    This was actually broken as of v4.0.0-rc.1 (2dcf3ef)
    but was highlighted as a breaking change by (#1437)

    ๐Ÿ†• New:

    • Top level predicate functions (#1600)

    New functions are exported from the immutable module:
    isSeq(), isList(), isMap(), isOrderedMap(), isStack(), isSet(), isOrderedSet(), and isRecord().

    • ๐Ÿ‘Œ Support Typescript 3 (#1593)
    • ๐Ÿ‘Œ Support latest Flow (#1531)
    • โž• Add RecordOf<TProps> type alias for TypeScript, matching Flow (#1578)
    • ๐Ÿ‘Œ Improved Flow support for Record subclasses (still not advised) (#1414)
    • ๐Ÿ‘Œ Improve performance of toJS (#1581)

    โœ… > Cursory test is >10% faster than both v3.8.2 and v4.0.0-rc.7,

    and corrects the regression since v4.0.0-rc.9.

    • โž• Added optional notSetValue in first() and last() (#1556)
    • Enable flow strict (#1580)
    • ๐Ÿ‘‰ Make isArrayLike check more precise to avoid false positives (#1520)
    • map() for List, Map, and Set returns itself for no-ops (#1455) (5726bd1)
    • Hash functions as objects, allowing functions as values in collections (#1485)

    ๐Ÿ›  Fix:

    • groupBy no longer returns a mutable Map instance (#1602)
    • ๐Ÿ›  Fix issue where refs can recursively collide, corrupting .size (#1598)
    • ๐Ÿ”€ Throw error in mergeWith() method if missing the required merger function (#1543)
    • โšก๏ธ Update isPlainObj() to workaround Safari bug and allow cross-realm values (#1557)
    • ๐Ÿ”€ The mergeDeepWith merger is untypable in TS/Flow. (#1532)
    • ๐Ÿ›  Fix missing "& T" to some methods in RecordInstance (#1464)
    • ๐Ÿ‘‰ Make notSetValue optional for typed Records (#1461) (a1029bb)
    • Export type of RecordInstance (#1434)
    • ๐Ÿ›  Fix Record size check in merge() (#1521)
    • ๐Ÿ›  Fix Map#concat being not defined (#1402)