{"ScriptPreparationCode":"var array = [{a:\u0022asd\u0022,b:5,c:null,d:new Date()},{a:\u0022bcd\u0022,b:6,c:void 0,d:new Date()},{a:\u0022efg\u0022,b:8,c:-1,d:new Date()}]\r\nvar compiledFuncConcat = new Function(\u0022data\u0022, \u0022return String((data\u0026\u0026data.a))\u002BString((data\u0026\u0026data.b))\u002BString((data\u0026\u0026data.c))\u002BString((data\u0026\u0026data.d));\u0022);\r\nvar compiledFuncJoin = new Function(\u0022data\u0022, \u0022return [(data\u0026\u0026data.a),(data\u0026\u0026data.b),(data\u0026\u0026data.c),(data\u0026\u0026data.d)].join(\u0027\u0027);\u0022);\r\n","TestCases":[{"Name":"String concat","Code":"var resultArr=[];\r\nfor(let i=0, ii = 10000; i\u003Cii; i\u002B\u002B){\r\n resultArr.push(compiledFuncConcat(array[i%array.length]))\r\n}","IsDeferred":false},{"Name":"String join","Code":"var resultArr=[];\r\nfor(let i=0, ii = 10000; i\u003Cii; i\u002B\u002B){\r\n resultArr.push(compiledFuncJoin(array[i%array.length]));\r\n}","IsDeferred":false},{"Name":"string join directly","Code":"var resultArr=[];\r\nfor(let i=0, ii = 10000; i\u003Cii; i\u002B\u002B){\r\n let data = array[i%array.length];\r\n resultArr.push([(data\u0026\u0026data.a),(data\u0026\u0026data.b),(data\u0026\u0026data.c),(data\u0026\u0026data.d)].join(\u0027\u0027));\r\n}","IsDeferred":false},{"Name":"String concat directly","Code":"var resultArr=[];\r\nfor(let i=0, ii = 10000; i\u003Cii; i\u002B\u002B){\r\n let data = array[i%array.length];\r\n resultArr.push(String((data\u0026\u0026data.a))\u002BString((data\u0026\u0026data.b))\u002BString((data\u0026\u0026data.c))\u002BString((data\u0026\u0026data.d)));\r\n}","IsDeferred":false}]}