{"ScriptPreparationCode":"var a = \u0022Here\u0027s a string value\u0022;\r\nvar b = 5; // and a number\r\nvar c = false;\r\n\r\nvar object = {\r\n a, b, c\r\n}\r\n\r\nvar array = [\r\n a, b, c\r\n];\r\n\r\nvar passObject = (obj) =\u003E {\r\n return obj.a.length \u002B obj.b * obj.c ? 2 : 1;\r\n}\r\n\r\nvar passRawValues = (val_a, val_b, val_c) =\u003E {\r\n return val_a.length \u002B val_b * val_c ? 2 : 1;\r\n}\r\n\r\nvar passArray = (arr) =\u003E {\r\n return arr[0].length \u002B arr[1] * arr[2] ? 2 : 1;\r\n}\r\n\r\nvar passNothingUseGlobalVars = () =\u003E {\r\n return a \u002B b * c ? 2 : 1;\r\n}\r\n\r\nvar passNothingUseGlobalObject = () =\u003E {\r\n return object.a.length \u002B object.b * object.c ? 2 : 1;\r\n}\r\n\r\nvar passNothingUseGlobalArray = () =\u003E {\r\n return array[0].length \u002B array[1] * array[2] ? 2 : 1;\r\n}\r\n\r\nvar x = 0;","TestCases":[{"Name":"Pass raw values","Code":"x \u003C\u003C 1;\r\nx ^= passRawValues(a, b, c);","IsDeferred":false},{"Name":"Pass object","Code":"x \u003C\u003C 1;\r\nx ^= passObject(object);","IsDeferred":false},{"Name":"Pass array","Code":"x \u003C\u003C 1;\r\nx ^= passArray(array);","IsDeferred":false},{"Name":"Pass new object","Code":"x \u003C\u003C 1;\r\nx ^= passObject({a, b, c});","IsDeferred":false},{"Name":"Pass new array","Code":"x \u003C\u003C 1;\r\nx ^= passArray([a,b,c]);","IsDeferred":false},{"Name":"Pass modified object","Code":"object.a = a;\r\nobject.b = b;\r\nobject.c = c;\r\nx \u003C\u003C 1;\r\nx ^= passObject(object);","IsDeferred":false},{"Name":"Pass modified array","Code":"array.a=a;\r\narray.b=b;\r\narray.c=c;\r\nx \u003C\u003C 1;\r\nx ^= passArray(array);","IsDeferred":false},{"Name":"Global vars","Code":"x \u003C\u003C 1;\r\nx ^= passNothingUseGlobalVars();","IsDeferred":false},{"Name":"Global object","Code":"x \u003C\u003C 1;\r\nx ^= passNothingUseGlobalObject();","IsDeferred":false},{"Name":"Global array","Code":"x \u003C\u003C 1;\r\nx ^= passNothingUseGlobalArray();","IsDeferred":false}]}