michael@0: var global = this; michael@0: function testWeirdDateParseOuter() michael@0: { michael@0: var vDateParts = ["11", "17", "2008"]; michael@0: var out = []; michael@0: for (var vI = 0; vI < vDateParts.length; vI++) michael@0: out.push(testWeirdDateParseInner(vDateParts[vI])); michael@0: /* Mutate the global shape so we fall off trace; this causes michael@0: * additional oddity */ michael@0: global.x = Math.random(); michael@0: return out; michael@0: } michael@0: function testWeirdDateParseInner(pVal) michael@0: { michael@0: var vR = 0; michael@0: for (var vI = 0; vI < pVal.length; vI++) { michael@0: var vC = pVal.charAt(vI); michael@0: if ((vC >= '0') && (vC <= '9')) michael@0: vR = (vR * 10) + parseInt(vC); michael@0: } michael@0: return vR; michael@0: } michael@0: function testWeirdDateParse() { michael@0: var result = []; michael@0: result.push(testWeirdDateParseInner("11")); michael@0: result.push(testWeirdDateParseInner("17")); michael@0: result.push(testWeirdDateParseInner("2008")); michael@0: result.push(testWeirdDateParseInner("11")); michael@0: result.push(testWeirdDateParseInner("17")); michael@0: result.push(testWeirdDateParseInner("2008")); michael@0: result = result.concat(testWeirdDateParseOuter()); michael@0: result = result.concat(testWeirdDateParseOuter()); michael@0: result.push(testWeirdDateParseInner("11")); michael@0: result.push(testWeirdDateParseInner("17")); michael@0: result.push(testWeirdDateParseInner("2008")); michael@0: return result.join(","); michael@0: } michael@0: assertEq(testWeirdDateParse(), "11,17,2008,11,17,2008,11,17,2008,11,17,2008,11,17,2008");