blob: 5c1bf75739a07fa85e50828f005ac4d351c662a3 [file] [log] [blame]
/***
* There was a bug on 32-bit builds where === with objects would not check the tag
* when determining equality via pointer comparison.
*/
"use strict";
function Foo() {}
function checkStrictEq(a, b) {
return a === b;
}
noInline(checkStrictEq);
function checkStrictEqOther(a, b) {
return a === b;
}
noInline(checkStrictEqOther);
var foo = new Foo();
var address = addressOf(foo);
if (address === undefined)
throw "Error: address should not be undefined";
if (foo === address || address === foo)
throw "Error: an address should not be equal to it's object";
for (var i = 0; i < 10000000; i++) {
if (checkStrictEq(foo, address))
throw "Error: an address should not be equal to it's object";
if (checkStrictEqOther(address,foo))
throw "Error: an address should not be equal to it's object";
}