--- /dev/null
+var doMasquerading = false;
+
+function bar(o) {
+ if (doMasquerading)
+ return makeMasquerader();
+ return o;
+}
+
+noInline(bar);
+
+function foo(o) {
+ o = bar(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);
+}
+
+doMasquerading = true;
+test({}, true);