var finalizerRun = false; var caught = false; function foo(arr) { finalizerRun = true; return not_defined; } function gen() { try { yield 1; } finally { foo(); } } function test() { var i_have_locals; for (i in gen()) { "this won't work"(); } } try { test(); } catch(e) { caught = true; assertEq(''+e, "ReferenceError: not_defined is not defined"); } assertEq(finalizerRun, true); assertEq(caught, true);