michael@0: function testUnaryImacros() michael@0: { michael@0: function checkArg(x) michael@0: { michael@0: return 1; michael@0: } michael@0: michael@0: var o = { valueOf: checkArg, toString: null }; michael@0: var count = 0; michael@0: var v = 0; michael@0: for (var i = 0; i < 5; i++) michael@0: v += +o + -(-o); michael@0: michael@0: var results = [v === 10 ? "valueOf passed" : "valueOf failed"]; michael@0: michael@0: o.valueOf = null; michael@0: o.toString = checkArg; michael@0: michael@0: for (var i = 0; i < 5; i++) michael@0: v += +o + -(-o); michael@0: michael@0: results.push(v === 20 ? "toString passed" : "toString failed"); michael@0: michael@0: return results.join(", "); michael@0: } michael@0: assertEq(testUnaryImacros(), "valueOf passed, toString passed");