function foo(o) {
    return typeof o === "undefined";
}

noInline(foo);

function test(o, expected) {
    var result = foo(o);
    if (result != expected)
        throw new Error("bad result: " + result);
}

for (var i = 0; i < 10000; ++i) {
    test(void 0, true);
    test(null, false);
    test(42, false);
    test({}, false);
    test("undefined", false);
}

test(makeMasquerader(), true);
