{"ScriptPreparationCode":"var object = {\r\n type: \u0022FeatureCollection\u0022,\r\n features: [{\r\n type: \u0022Feature\u0022,\r\n properties: {},\r\n geometry: {\r\n type: \u0022Point\u0022,\r\n coordinates: [4.483605784808901, 51.907188449679325]\r\n }\r\n },\r\n {\r\n \u0022type\u0022: \u0022Feature\u0022,\r\n \u0022properties\u0022: {},\r\n \u0022geometry\u0022: {\r\n \u0022type\u0022: \u0022Polygon\u0022,\r\n \u0022coordinates\u0022: [\r\n [\r\n [3.974369110811523, 51.907355547778565],\r\n [4.173944459020191, 51.86237166892457],\r\n [4.3808076710679416, 51.848867725914914],\r\n [4.579822414365026, 51.874487141880024],\r\n [4.534413416598767, 51.9495302480326],\r\n [4.365110733567974, 51.92360787140825],\r\n [4.179550508127079, 51.97336560819281],\r\n [4.018096293847009, 52.00236546429852],\r\n [3.9424146309028174, 51.97681895676649],\r\n [3.974369110811523, 51.907355547778565]\r\n ]\r\n ]\r\n }\r\n }\r\n ]\r\n};\r\n\r\nvar copy = null;\r\n\r\n// Manual clone\r\n\r\nfunction deepCloneJsonValue(value) {\r\n if (value === null || typeof value !== \u0022object\u0022) return value;\r\n\r\n if (Array.isArray(value)) return deepCloneJsonArray(value);\r\n return deepCloneJsonObject(value);\r\n}\r\n\r\nfunction deepCloneJsonObject(obj) {\r\n const cloned = { ...obj };\r\n for (const key in cloned) {\r\n const value = cloned[key];\r\n if (typeof value !== \u0022object\u0022 || value === null) continue;\r\n cloned[key] = Array.isArray(value) ? deepCloneJsonArray(value) : deepCloneJsonObject(value);\r\n }\r\n return cloned;\r\n}\r\n\r\nfunction deepCloneJsonArray(arr) {\r\n const cloned = [];\r\n for (let i = 0, len = arr.length; i !== len; i\u002B\u002B) {\r\n cloned.push(deepCloneJsonValue(arr[i]));\r\n }\r\n return cloned;\r\n}\r\n","TestCases":[{"Name":"structuredClone","Code":"copy = structuredClone(object);","IsDeferred":false},{"Name":"JSON Stringify\u002BParse","Code":"copy = JSON.parse(JSON.stringify(object));","IsDeferred":false},{"Name":"Manual clone","Code":"copy = deepCloneJsonValue(object);","IsDeferred":false}]}