michael@0: function foo(x) { michael@0: return !x; michael@0: } michael@0: michael@0: assertEq(foo({}), false); michael@0: assertEq(foo({}), false); michael@0: assertEq(foo(1.1), false); michael@0: assertEq(foo(1.1), false); michael@0: assertEq(foo(0.0), true); michael@0: assertEq(foo(0.0), true); michael@0: assertEq(foo(null), true); michael@0: assertEq(foo(null), true); michael@0: assertEq(foo(undefined), true); michael@0: assertEq(foo(undefined), true); michael@0: assertEq(foo(Infinity), false); michael@0: assertEq(foo(Infinity), false); michael@0: assertEq(foo(NaN), true); michael@0: assertEq(foo(NaN), true); michael@0: assertEq(foo([]), false); michael@0: assertEq(foo([]), false); michael@0: assertEq(foo(''), true); michael@0: assertEq(foo(''), true); michael@0: assertEq(foo('x'), false); michael@0: assertEq(foo('x'), false); michael@0: assertEq(foo(true), false); michael@0: assertEq(foo(true), false); michael@0: assertEq(foo(false), true); michael@0: assertEq(foo(false), true); michael@0: assertEq(foo(-0.0), true); michael@0: assertEq(foo(-0.0), true); michael@0: assertEq(foo(objectEmulatingUndefined()), true); michael@0: assertEq(foo(objectEmulatingUndefined()), true);