()
| 158 | testBadToString_charAt(); |
| 159 | |
| 160 | function testBadToString_charCodeAt() { |
| 161 | var goodToString = o.toString; |
| 162 | var hasCaught = false; |
| 163 | var numCalls = 0; |
| 164 | var result; |
| 165 | try { |
| 166 | for (var i = 0; i < 20; i++) { |
| 167 | if (i == 10) o.toString = o.valueOf = badToString; |
| 168 | result = o.charCodeAt(1); |
| 169 | numCalls++; |
| 170 | } |
| 171 | } catch (e) { |
| 172 | hasCaught = true; |
| 173 | } finally { |
| 174 | o.toString = goodToString; |
| 175 | } |
| 176 | assertTrue(hasCaught); |
| 177 | assertEquals(49, result); |
| 178 | assertEquals(10, numCalls); |
| 179 | } |
| 180 | testBadToString_charCodeAt(); |
| 181 | |
| 182 | var badIndex = { |
no test coverage detected