bug1480390.js (628B)
1 var g = newGlobal({newCompartment: true}); 2 g.parent = this; 3 g.eval("new Debugger(parent).onExceptionUnwind = function () {};"); 4 5 function* wrapNoThrow() { 6 let iter = { 7 [Symbol.iterator]() { 8 return this; 9 }, 10 next() { 11 return { value: 10, done: false }; 12 }, 13 return() { return "invalid return value" } 14 }; 15 for (const i of iter) 16 yield i; 17 } 18 19 function foo() { 20 for (var i of [1,2,3]) { 21 for (var j of [4,5,6]) { 22 try { 23 for (const i of wrapNoThrow()) break; 24 } catch (e) {} 25 } 26 for (var j of [7,8,9]) { 27 } 28 } 29 } 30 31 for (var i = 0; i < 10; i++) { 32 try { 33 foo(); 34 } catch(e) {} 35 }