michael@0: michael@0: /* Non-reentrant call on an inner and outer closure. */ michael@0: michael@0: function foo() { michael@0: var x = 0; michael@0: function bar() { michael@0: var y = 0; michael@0: function baz() { michael@0: return ++x + ++y; michael@0: } michael@0: return baz; michael@0: } michael@0: return bar(); michael@0: } michael@0: michael@0: var a = foo(); michael@0: var b = foo(); michael@0: assertEq(a() + a() + b() + b(), 12);