michael@0: // Control can exit a for-of loop via throw. michael@0: michael@0: function f() { michael@0: for (var a of [1, 2, 3]) { michael@0: for (var b of [1, 2, 3]) { michael@0: for (var c of [1, 2, 3]) { michael@0: if (a !== b && b !== c && c !== a) michael@0: throw [a, b, c]; michael@0: } michael@0: } michael@0: } michael@0: } michael@0: michael@0: var x = null; michael@0: try { michael@0: f(); michael@0: } catch (exc) { michael@0: x = exc.join(""); michael@0: } michael@0: assertEq(x, "123");