function g() { assertEq(false, true) }
var ct = 0;

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