| "Tests that we do ToString conversions correctly when String.prototype.valueOf is initially fine but then gets clobbered, and was a dictionary all along." |
| delete String.prototype.trim; |
| delete String.prototype.toLowerCase; |
| delete String.prototype.toLocaleUpperCase; |
| for (var i = 0; i < 1000; ++i) |
| String.prototype["a" + i] = 42; |
| for (var i = 0; i < 100; ++i) |
| var expected = "\"hello\""; |
| for (var i = 0; i < 150; ++i) { |
| String.prototype.toString = function() { return 42; } |
| shouldBe("\"\" + foo(\"hello\")", expected); |