michael@0: function g() { assertEq(false, true) } michael@0: var ct = 0; michael@0: michael@0: function f(b) { michael@0: if (b) { michael@0: arguments = [false]; michael@0: f(false); michael@0: } else { michael@0: g = { michael@0: apply:function(x,y) { michael@0: ++ct; michael@0: assertEq(x, null); michael@0: assertEq(y[0], false); michael@0: } michael@0: }; michael@0: } michael@0: g.apply(null, arguments); michael@0: } michael@0: f(true); michael@0: assertEq(ct, 2);