var samples = [ "[...a]", "[...[1]]", "[1, ...a, 2]", "[1, ...[2, 3], 4]", "[...[1], , ]", "[1, , ...[2]]", "[, 1, ...[2], ...[3], , 4, 5, , ]" ]; for (var sample of samples) { var source = "function f() {\n return " + sample + ";\n}"; eval(source); assertEq(f.toString(), source); }