function f(s) {
    var q;
    for (var i = 0; i < 10000; i++)
        q = ~s;
    return q;
}
var obj = { valueOf: function () { return 3; } }
assertEq(f(obj), -4);