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