to-string-on-string-or-string-object-then-object.js   [plain text]


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;