michael@0: function f(v1, v2, value) michael@0: { michael@0: var b = v1 != v2; michael@0: assertEq(b, value, michael@0: "failed: " + v1 + ", " + v2 + ": " + value); michael@0: } michael@0: michael@0: var obj = {}; michael@0: var emul = objectEmulatingUndefined(); michael@0: michael@0: f(obj, obj, false); michael@0: f(obj, obj, false); michael@0: f(emul, obj, true); michael@0: f(emul, obj, true); michael@0: f(obj, emul, true); michael@0: f(obj, emul, true); michael@0: f(Object.prototype, obj, true); michael@0: f(Object.prototype, obj, true); michael@0: f(emul, emul, false); michael@0: f(objectEmulatingUndefined(), emul, true); michael@0: f(objectEmulatingUndefined(), emul, true); michael@0: f(emul, objectEmulatingUndefined(), true); michael@0: f(emul, objectEmulatingUndefined(), true);