michael@0: function f1() { michael@0: assertEq(g(), 3); michael@0: function g() { return 1 } michael@0: assertEq(g(), 3); michael@0: function g() { return 2 } michael@0: assertEq(g(), 3); michael@0: function g() { return 3 } michael@0: assertEq(g(), 3); michael@0: } michael@0: f1(); michael@0: michael@0: function f2() { michael@0: assertEq(g(), 2); michael@0: var g = 3; michael@0: assertEq(g, 3); michael@0: function g() { return 1 } michael@0: function g() { return 2 } michael@0: } michael@0: f2(); michael@0: michael@0: function f3() { michael@0: assertEq(g(), 2); michael@0: var g = 3; michael@0: assertEq(g, 3); michael@0: function g() { return 1 } michael@0: var g = 4; michael@0: assertEq(g, 4); michael@0: function g() { return 2 } michael@0: } michael@0: f3(); michael@0: michael@0: function f4() { michael@0: assertEq(g(), 4); michael@0: function g() { return 1 } michael@0: assertEq(g(), 4); michael@0: function g() { return 2 } michael@0: var g = 9; michael@0: assertEq(g, 9); michael@0: function g() { return 3 } michael@0: assertEq(g, 9); michael@0: function g() { return 4 } michael@0: assertEq(g, 9); michael@0: } michael@0: f4();