function foo(o) { return String(o); } noInline(foo); for (var i = 0; i < 100000; ++i) { var result = foo(new String("hello")); if (typeof result != "string") { describe(result); throw "Error: result isn't a string"; } if (result != "hello") throw "Error: bad result: " + result; result = foo("world"); if (typeof result != "string") { describe(result); throw "Error: result isn't a string"; } if (result != "world") throw "Error: bad result: " + result; } function Foo() { } Foo.prototype.toString = function() { return "hello" }; var result = foo(new Foo()); if (typeof result != "string") { describe(result); throw "Error: result isn't a string"; } if (result != "hello") throw "Error: bad result: " + result;