{"ScriptPreparationCode":"function ChildComponent(props) {\r\n return React.createElement(\u0022div\u0022, props);\r\n}\r\n\r\nconst OptimizedChildComponent = React.memo(ChildComponent);\r\n\r\n\r\nfunction UseMemoAndOptimizedChild(props) {\r\n const result = React.useMemo(() =\u003E {\r\n return props.handler(props.voices, props.tabIndex);\r\n }, [props.handler, props.voices,props.tabIndex]);\r\n return React.createElement(OptimizedChildComponent, {},result);\r\n}\r\n\r\nfunction UseMemoAlone(props) {\r\n const result = React.useMemo(() =\u003E {\r\n return props.handler(props.voices, props.tabIndex);\r\n }, [props.handler, props.voices,props.tabIndex]);\r\n return React.createElement(ChildComponent, {},result );\r\n}\r\n\r\nfunction NoMemo(props) {\r\n const result = props.handler(props.voices, props.tabIndex);\r\n return React.createElement(ChildComponent, {},result);\r\n}\r\n\r\nfunction getTextFallback(voices,tabIndex) { \r\n const voicesArr = voices.split(\u0027,\u0027);\r\n return voicesArr[tabIndex] || voicesArr?.[0] \r\n}\r\n\r\nvar propCases = [{\r\n handler: getTextFallback,\r\n voices: \u0027foo\u0027,\r\n tabIndex: 0\r\n}, {\r\n handler: getTextFallback,\r\n voices: \u0027foo,bar,tar\u0027,\r\n tabIndex: 2\r\n}, {\r\n handler: getTextFallback,\r\n voices: \u0027foo,bar,tar\u0027,\r\n tabIndex: 1\r\n}];","TestCases":[{"Name":"NoMemo","Code":"propCases.forEach((props) =\u003E {\r\n ReactDOM.render(React.createElement(NoMemo, props, null), root);\r\n});","IsDeferred":false},{"Name":"UseMemoAndOptimizedChild","Code":"propCases.forEach((props) =\u003E {\r\n ReactDOM.render(React.createElement(UseMemoAndOptimizedChild, props, null), root);\r\n});","IsDeferred":false},{"Name":"UseMemoAlone","Code":"propCases.forEach((props) =\u003E {\r\n ReactDOM.render(React.createElement(UseMemoAlone, props, null), root);\r\n});","IsDeferred":false}]}