From 9a94f12e5f610ddc3d942fe06319805f63ecebb6 Mon Sep 17 00:00:00 2001 From: Jesse Date: Mon, 13 Jan 2025 20:37:41 +0100 Subject: [PATCH] Resolve lock in cloner if debugger is attached (#1075) --- project/src/utils/cloners/RecursiveCloner.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/project/src/utils/cloners/RecursiveCloner.ts b/project/src/utils/cloners/RecursiveCloner.ts index 839a35ae..22ca2255 100644 --- a/project/src/utils/cloners/RecursiveCloner.ts +++ b/project/src/utils/cloners/RecursiveCloner.ts @@ -60,14 +60,15 @@ export class RecursiveCloner implements ICloner { if (typeOfObj === "object") { if (Array.isArray(obj)) { const objArr = obj as Array; - const clonedArray = await Promise.all(objArr.map(async (v) => await this.cloneAsync(v))); + const clonedArray = await Promise.all(objArr.map((v) => this.cloneAsync(v))); return clonedArray as T; } const newObj: Record = {}; - const clonePromises = Object.keys(obj).map(async (key) => { + const clonePromises = Object.keys(obj).map((key) => { const value = (obj as Record)[key]; - newObj[key] = await this.cloneAsync(value); + // Assign values to `newObj` with this.clone, assigning values to `newObj` causes locks with the debugger attached if cloneAsync is used. + newObj[key] = this.clone(value); }); await Promise.all(clonePromises);