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, true); michael@0: f(obj, obj, true); michael@0: f(emul, obj, false); michael@0: f(emul, obj, false); michael@0: f(obj, emul, false); michael@0: f(obj, emul, false); michael@0: f(Object.prototype, obj, false); michael@0: f(Object.prototype, obj, false); michael@0: f(emul, emul, true); michael@0: f(objectEmulatingUndefined(), emul, false); michael@0: f(objectEmulatingUndefined(), emul, false); michael@0: f(emul, objectEmulatingUndefined(), false); michael@0: f(emul, objectEmulatingUndefined(), false);