michael@0: // for-of does not trigger the JS 1.7 for-in destructuring special case. michael@0: michael@0: version(170); michael@0: michael@0: var data = [[1, 2, 3], [4, 5, 6, 7]]; michael@0: michael@0: function test(vars, expr, result) { michael@0: var s = ''; michael@0: eval("for (" + vars + " of data) s += (" + expr + ") + ';';"); michael@0: assertEq(s, result); michael@0: } michael@0: michael@0: for (var prefix of ["var ", "let ", ""]) { michael@0: test(prefix + "[a, b, c]", michael@0: "a + ',' + b + ',' + c", michael@0: "1,2,3;4,5,6;"); michael@0: } michael@0: michael@0: test("var [a]", "a", "1;4;"); michael@0: test("var {length: len}", "len", "3;4;"); michael@0: test("var {length}", "length", "3;4;"); michael@0: test("{}", "0", "0;0;"); michael@0: