throw.js (376B)
1 // Control can exit a for-of loop via throw. 2 3 function f() { 4 for (var a of [1, 2, 3]) { 5 for (var b of [1, 2, 3]) { 6 for (var c of [1, 2, 3]) { 7 if (a !== b && b !== c && c !== a) 8 throw [a, b, c]; 9 } 10 } 11 } 12 } 13 14 var x = null; 15 try { 16 f(); 17 } catch (exc) { 18 x = exc.join(""); 19 } 20 assertEq(x, "123");