String-methods-infinite-recursion.js (869B)
1 /* 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/licenses/publicdomain/ 4 */ 5 6 //----------------------------------------------------------------------------- 7 var BUGNUMBER = 657585; 8 var summary = 9 'Guard against infinite recursion when converting |this| to string for the ' + 10 'String.prototype.* methods'; 11 12 print(BUGNUMBER + ": " + summary); 13 14 /************** 15 * BEGIN TEST * 16 **************/ 17 18 try 19 { 20 var obj = {}; 21 obj.toString = String.prototype.charAt; 22 "" + obj; 23 throw new Error("should have thrown"); 24 } 25 catch (e) 26 { 27 assertEq(e instanceof InternalError, true, 28 "should have thrown InternalError for over-recursion, got: " + e); 29 } 30 31 /******************************************************************************/ 32 33 if (typeof reportCompare === "function") 34 reportCompare(true, true); 35 36 print("All tests passed!");