Skip to content

Releases: immerjs/immer

v11.0.1

28 Nov 07:20

Choose a tag to compare

11.0.1 (2025-11-28)

Bug Fixes

v11.0.0

23 Nov 10:01
d6c1202

Choose a tag to compare

11.0.0 (2025-11-23)

Performance Improvements

  • Rewrite finalization system to use a callback approach instead of tree traversal (#1183) (d6c1202)

BREAKING CHANGES

  • enable loose iteration by default

  • Simplify some iteration checks

  • Allow passing type to get/set utils to skip archetype lookup

  • Convert assigned_ to Map

  • Enable loose iteration

  • Replace recursive tree finalization with targeted callbacks

Ported Mutative's "finalization callback" approach as a more targeted and performant implementation for finalization compared to the existing recursive tree traversal approach:

  • Added cleanup callbacks for each draft that's created
  • Added callbacks to handle root drafts, assigned values, and recursing
    inside of plain values
  • Updated state creation to return [draft, state] to avoid a lookup
  • Rewrote patch generation system to work with callbacks instead of
    during tree traversal
  • Update self-reference test with new behavior
  • Apply code review suggestions
  • Byte-shave scopes and patch plugin usage
  • Inline finalizeAssigned
  • Move fixPotentialSetContents to plugin
  • Byte-shave typeof utils
  • Byte-shave Object references
  • Byte-shave field names and arrow functions

v10.2.0

25 Oct 11:31
e1996ce

Choose a tag to compare

10.2.0 (2025-10-25)

Features

  • Optimize Immer performance where possible, introduce setUseStrictIteration (#1164) (e1996ce)

v10.1.3

01 Sep 18:14
85faaa2

Choose a tag to compare

10.1.3 (2025-09-01)

Bug Fixes

  • Mark exports as pure, for better tree-shakability (#1124) (85faaa2)

v10.1.2

01 Sep 18:10
062210e

Choose a tag to compare

10.1.2 (2025-09-01)

Bug Fixes

  • non-enumerable (immutable) methods on Map/Set (#1069) (aa24400)
  • Update package.json exports for react-native (#1159) (b2fcc66)

v10.1.1

27 Apr 20:07
e2d222b

Choose a tag to compare

10.1.1 (2024-04-27)

Bug Fixes

v10.1.0

27 Apr 19:56
53e3203

Choose a tag to compare

10.1.0 (2024-04-27)

Features

  • performance: Make non-strict mode faster for classes. Addresses #1071 (53e3203). Immer 10.x solved slow iteration for plain JS objects. This update applies the same handling to class instances. In cases this makes class instance handling 3 times faster. Note that this slightly modifies the behavior of Immer with classes in obscure corner cases, in ways that match current documentation, but do not match previous behavior. If you run into issues with this release icmw. class instances, use setUseStrictShallowCopy("class_only") to revert to the old behavior. For more details see https://immerjs.github.io/immer/complex-objects#semantics-in-detail

v10.0.4

09 Mar 21:37

Choose a tag to compare

10.0.4 (2024-03-09)

Bug Fixes

v10.0.3

02 Oct 06:36
f6736a4

Choose a tag to compare

10.0.3 (2023-10-02)

Bug Fixes

v10.0.2

09 May 18:24
75e004d

Choose a tag to compare

10.0.2 (2023-05-09)

Bug Fixes

  • export Objectish type (#1043) (75e004d)
  • Move index.js.flow from dist/ -> dist/cjs/ to match index.js (#1038) (a3b5603)