commit 46056c416b51b783d1b9c88385aba0d293021524
parent 2be1c3c8bd78b501ddf3a0b989f954f9163b3702
Author: Florian Dold <florian@dold.me>
Date: Wed, 7 Apr 2021 15:52:57 +0200
structured clone: handle top-level booleans correctly
Diffstat:
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/packages/idb-bridge/src/util/structuredClone.test.ts b/packages/idb-bridge/src/util/structuredClone.test.ts
@@ -24,7 +24,10 @@ function checkClone(t: ExecutionContext, x: any): void {
test("structured clone", (t) => {
checkClone(t, "foo");
checkClone(t, [1, 2]);
+ checkClone(t, true);
+ checkClone(t, false);
checkClone(t, { x1: "foo" });
+ checkClone(t, { x1: true, x2: false });
checkClone(t, new Date());
checkClone(t, [new Date()]);
checkClone(t, undefined);
diff --git a/packages/idb-bridge/src/util/structuredClone.ts b/packages/idb-bridge/src/util/structuredClone.ts
@@ -180,6 +180,9 @@ export function internalStructuredRevive(val: any): any {
if (typeof val === "string") {
return val;
}
+ if (typeof val === "boolean") {
+ return val;
+ }
if (!isPlainObject(val)) {
throw Error();
}