diff --git a/packages/solid/store/src/mutable.ts b/packages/solid/store/src/mutable.ts index f88c85010..03afb2e35 100644 --- a/packages/solid/store/src/mutable.ts +++ b/packages/solid/store/src/mutable.ts @@ -97,6 +97,7 @@ function wrap(value: T): T { const proto = Object.getPrototypeOf(value); const isClass = + proto !== null && value !== null && typeof value === "object" && !Array.isArray(value) && diff --git a/packages/solid/store/test/mutable.spec.ts b/packages/solid/store/test/mutable.spec.ts index b8946dee7..e3409d145 100644 --- a/packages/solid/store/test/mutable.spec.ts +++ b/packages/solid/store/test/mutable.spec.ts @@ -2,7 +2,13 @@ import { createRoot, createSignal, createMemo, batch, createEffect } from "../.. import { Accessor, Setter } from "../../types"; import { createMutable, unwrap, $RAW } from "../src"; +test("Object.create(null) is allowed", () => { + const user = createMutable(Object.assign(Object.create(null), { name: "John" })); + expect(user.name).toBe("John"); +}); + describe("State Mutability", () => { + test("Setting a property", () => { const user = createMutable({ name: "John" }); expect(user.name).toBe("John");