1function foo(o) {
2    return String(o);
3}
4
5noInline(foo);
6
7for (var i = 0; i < 100000; ++i) {
8    var result = foo(new String("hello"));
9    if (typeof result != "string") {
10        describe(result);
11        throw "Error: result isn't a string";
12    }
13    if (result != "hello")
14        throw "Error: bad result: " + result;
15
16    result = foo("world");
17    if (typeof result != "string") {
18        describe(result);
19        throw "Error: result isn't a string";
20    }
21    if (result != "world")
22        throw "Error: bad result: " + result;
23}
24
25function Foo() { }
26
27Foo.prototype.toString = function() { return "hello" };
28
29var result = foo(new Foo());
30if (typeof result != "string") {
31    describe(result);
32    throw "Error: result isn't a string";
33}
34if (result != "hello")
35    throw "Error: bad result: " + result;
36