function f(x) { function x() {} arguments[0] = 42; return x; } assertEq(f(0), 42); function g(x) { function x() {} assertEq(arguments[0], x); } g(0); var caught = false; try { (function h(x) { function x() {} }).blah.baz; } catch (e) { caught = true; } assertEq(caught, true);