function f1(b) { var w = 3; if (b) function w() {} return w; } assertEq(typeof f1(true), "function"); assertEq(f1(false), 3); function f2(b, w) { // Annex B doesn't apply to functions in blocks with the same name as a // parameter. if (b) function w() {} return w; } assertEq(typeof f2(true, 3), "number"); assertEq(f2(false, 3), 3);