{"ScriptPreparationCode":"/*your preparation JavaScript code goes here\r\nTo execute async code during the script preparation, wrap it as function globalMeasureThatScriptPrepareFunction, example:*/\r\nfunction parseKeys_1(path) {\r\n return path.split(\u0022.\u0022).flatMap((key) =\u003E {\r\n const match = key.match(/^([^[\\]]\u002B)(\\[(\\d\u002B)\\])?$/);\r\n if (!match) {\r\n throw new Error(\u0060nestedProperty.set(). Invalid path segment: ${key}\u0060);\r\n }\r\n return [match[1], match[3]].filter(Boolean);\r\n });\r\n}\r\n\r\nfunction parseKeys_2(path) {\r\n return path\r\n .replace(/\\[(\\w\u002B)\\]/g, \u0027.$1\u0027) // convert [0] to .0\r\n .split(\u0027.\u0027) // split by dots\r\n .filter(Boolean); \r\n}\r\n\r\nfunction parsePath(path) {\r\n const keys = [];\r\n let start = 0;\r\n\r\n for (let i = 0; i \u003C path.length; i\u002B\u002B) {\r\n const c = path[i];\r\n\r\n if (c === \u0027.\u0027 || c === \u0027[\u0027) {\r\n if (i \u003E start) keys.push(path.substring(start, i));\r\n\r\n if (c === \u0027[\u0027) {\r\n const close = path.indexOf(\u0027]\u0027, i);\r\n if (close === -1) throw new Error(\u0022Unmatched [\u0022);\r\n keys.push(path.substring(i \u002B 1, close));\r\n i = close;\r\n }\r\n\r\n start = i \u002B 1;\r\n }\r\n }\r\n\r\n if (start \u003C path.length) keys.push(path.substring(start));\r\n return keys;\r\n}","TestCases":[{"Name":"with regex","Code":"parseKeys_1(\u0022obj.items[0].value\u0022)","IsDeferred":false},{"Name":"with regex 2","Code":"parseKeys_2(\u0022obj.items[0].value\u0022)","IsDeferred":false},{"Name":"without regex","Code":"parsePath(\u0022obj.items[0].value\u0022)","IsDeferred":false}]}