{"ScriptPreparationCode":"const numSiblings = 500;\r\nconst depth = 5;\r\n\r\nstate = {\r\n data: {\r\n data1: {\r\n data2: \u0027test\u0027,\r\n siblings: Array.from({\r\n length: numSiblings\r\n }).map(() =\u003E ({\r\n id: uuidv4()\r\n })),\r\n children: Array.from({\r\n length: depth\r\n }).map(() =\u003E ({\r\n id: uuidv4(),\r\n data: {\r\n data1: {\r\n data2: \u0027test\u0027,\r\n siblings: Array.from({\r\n length: numSiblings\r\n }).map(() =\u003E ({\r\n id: uuidv4()\r\n })),\r\n children: Array.from({\r\n length: depth\r\n }).map(() =\u003E ({\r\n id: uuidv4(),\r\n data: {\r\n data1: {\r\n data2: \u0027test\u0027,\r\n siblings: Array.from({\r\n length: numSiblings\r\n }).map(() =\u003E ({\r\n id: uuidv4()\r\n })),\r\n children: Array.from({\r\n length: depth\r\n }).map(() =\u003E ({\r\n id: uuidv4(),\r\n data: {\r\n data1: {\r\n data2: \u0027test\u0027,\r\n siblings: Array.from({\r\n length: numSiblings\r\n }).map(() =\u003E ({\r\n id: uuidv4()\r\n })),\r\n },\r\n },\r\n })),\r\n },\r\n },\r\n })),\r\n },\r\n },\r\n })),\r\n },\r\n data3: Array.from({\r\n length: 1000\r\n }).map(() =\u003E document.createElement(\u0027div\u0027)),\r\n },\r\n};","TestCases":[{"Name":"_.cloneDeep()","Code":"const result = _.cloneDeep(state);\r\nresult.data.data1.data2 = \u0027updated\u0027;","IsDeferred":false},{"Name":"AngularJS copy","Code":"const result = angular.copy(state);\r\nresult.data.data1.data2 = \u0027updated\u0027;","IsDeferred":false},{"Name":"JSON.parse","Code":"const result = JSON.parse(JSON.stringify((state)));\r\nresult.data.data1.data2 = \u0027updated\u0027;","IsDeferred":false},{"Name":"immer.produce()","Code":"const result = immer.produce(state, draft =\u003E { draft.data.data1.data2 = \u0027updated\u0027 })","IsDeferred":false}]}