actual = ''; 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,'; var f = function() { var p = 0; function h() { var q = 0; function g() { for (var i = 0; i < 5; ++i) { p++; appendToActual('g ' + p + ' ' + q); q--; } } g(); appendToActual('h ' + p + ' ' + q); } h(); appendToActual('f ' + p); } for (var i = 0; i < 5; ++i) { f(); appendToActual(); } assertEq(actual, expected)