{"ScriptPreparationCode":"function assertEqual(v1, v2) {\r\n if (v1 instanceof Array \u0026\u0026 v2 instanceof Array) {\r\n if (v1.length != v2.length) return false;\r\n for (var i = 0; i \u003C v1.length; i\u002B\u002B)\r\n if (!assertEqual(v1[i], v2[i])) return false;\r\n return true;\r\n }\r\n return v1 === v2;\r\n}","TestCases":[{"Name":"ES5 copy arguments","Code":"function unary(val) {\r\n if (arguments.length !== 1) { var $a=new Array(arguments.length); for (var $i=0;$i\u003Carguments.length;$i\u002B\u002B) { $a[$i]=arguments[$i]; } throw $a; }\r\n return true;\r\n}\r\n\r\ntry {\r\n unary(1, 2, 3, 4, true, false, \u0022a\u0022, \u0022b\u0022);\r\n} catch (e) {\r\n assertEqual(e, [1, 2, 3, 4, true, false, \u0022a\u0022, \u0022b\u0022]);\r\n}","IsDeferred":false},{"Name":"ES6 copy rest","Code":"function unary(val, ...extra) {\r\n if ((val === void 0) || extra.length \u003E 0) { throw [val, ...extra]; }\r\n return true;\r\n}\r\n\r\ntry {\r\n unary(1, 2, 3, 4, true, false, \u0022a\u0022, \u0022b\u0022);\r\n} catch (e) {\r\n assertEqual(e, [1, 2, 3, 4, true, false, \u0022a\u0022, \u0022b\u0022]);\r\n}","IsDeferred":false}]}