michael@0: actual = ''; michael@0: expected = 'g 1 0,g 2 -1,g 3 -2,g 4 -3,g 5 -4,h 5 -5,f 5,undefined,g 1 0,g 2 -1,g 3 -2,g 4 -3,g 5 -4,h 5 -5,f 5,undefined,g 1 0,g 2 -1,g 3 -2,g 4 -3,g 5 -4,h 5 -5,f 5,undefined,g 1 0,g 2 -1,g 3 -2,g 4 -3,g 5 -4,h 5 -5,f 5,undefined,g 1 0,g 2 -1,g 3 -2,g 4 -3,g 5 -4,h 5 -5,f 5,undefined,'; michael@0: michael@0: var f = function() { michael@0: var p = 0; michael@0: michael@0: function h() { michael@0: var q = 0; michael@0: michael@0: function g() { michael@0: for (var i = 0; i < 5; ++i) { michael@0: p++; michael@0: appendToActual('g ' + p + ' ' + q); michael@0: q--; michael@0: } michael@0: } michael@0: g(); michael@0: appendToActual('h ' + p + ' ' + q); michael@0: } michael@0: michael@0: h(); michael@0: michael@0: appendToActual('f ' + p); michael@0: } michael@0: michael@0: for (var i = 0; i < 5; ++i) { michael@0: f(); michael@0: appendToActual(); michael@0: } michael@0: michael@0: michael@0: michael@0: assertEq(actual, expected)