From 46867f8aa90f6c8d2d94517f6bd748d679b6ea79 Mon Sep 17 00:00:00 2001 From: Alt-er Date: Mon, 16 Jan 2023 02:42:36 +0800 Subject: [PATCH] fix: don't freeze drafts returned from produce if they were passed in as draft (#917) --- src/core/immerClass.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/immerClass.ts b/src/core/immerClass.ts index 93b0ef1c..59d2f494 100644 --- a/src/core/immerClass.ts +++ b/src/core/immerClass.ts @@ -88,6 +88,8 @@ export class Immer implements ProducersFns { // Only plain objects, arrays, and "immerable classes" are drafted. if (isDraftable(base)) { const scope = enterScope(this) + //when base is a draft,can't freeze + scope.canAutoFreeze_ = !isDraft(base) const proxy = createProxy(this, base, undefined) let hasError = true try {