1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
var global = this;
function testWeirdDateParseOuter()
{
var vDateParts = ["11", "17", "2008"];
var out = [];
for (var vI = 0; vI < vDateParts.length; vI++)
out.push(testWeirdDateParseInner(vDateParts[vI]));
/* Mutate the global shape so we fall off trace; this causes
* additional oddity */
global.x = Math.random();
return out;
}
function testWeirdDateParseInner(pVal)
{
var vR = 0;
for (var vI = 0; vI < pVal.length; vI++) {
var vC = pVal.charAt(vI);
if ((vC >= '0') && (vC <= '9'))
vR = (vR * 10) + parseInt(vC);
}
return vR;
}
function testWeirdDateParse() {
var result = [];
result.push(testWeirdDateParseInner("11"));
result.push(testWeirdDateParseInner("17"));
result.push(testWeirdDateParseInner("2008"));
result.push(testWeirdDateParseInner("11"));
result.push(testWeirdDateParseInner("17"));
result.push(testWeirdDateParseInner("2008"));
result = result.concat(testWeirdDateParseOuter());
result = result.concat(testWeirdDateParseOuter());
result.push(testWeirdDateParseInner("11"));
result.push(testWeirdDateParseInner("17"));
result.push(testWeirdDateParseInner("2008"));
return result.join(",");
}
assertEq(testWeirdDateParse(), "11,17,2008,11,17,2008,11,17,2008,11,17,2008,11,17,2008");
|