{"ScriptPreparationCode":"var array1 = [0,1,2,3,4,5,6,7,8,9]; \r\nfor (var i=0;i\u003C10;i\u002B\u002B) array1.push(...array1);\r\nvar array2 = [...array1];\r\nconsole.log(\u0027array1.length = \u0027 \u002B array1.length)","TestCases":[{"Name":"Array.prototype.concat","Code":"var result = array1.concat(array2);\r\n\r\n// the \u0027push\u0027 test needs to do more setup. Repeat it here so it\u0027s not unfairly hindered. \r\nvar pushResult = [];\r\npushResult.push(...array1);","IsDeferred":false},{"Name":"spread operator","Code":"var result = [...array1, ...array2];\r\n\r\n// the \u0027push\u0027 test needs to do more setup. Repeat it here so it\u0027s not unfairly hindered. \r\nvar pushResult = [];\r\npushResult.push(...array1);","IsDeferred":false},{"Name":"Push","Code":"// setup for push\r\nvar pushResult = [];\r\npushResult.push(...array1);\r\n\r\n// push test: \r\npushResult.push(...array2);","IsDeferred":false},{"Name":"spread operator without push setup ","Code":"var result = [...array1, ...array2];","IsDeferred":false},{"Name":"push without setup","Code":"var result = array1.push(...array2); ","IsDeferred":false}]}