function foo(string) { | |
var result1, result2; | |
var m_z = 1; | |
var m_w = 2; | |
for (var i = 0; i < 100000; ++i) { | |
result1 = string[0]; // This will be slow, but we're testing if we stay in the DFG. | |
for (var j = 0; j < 10; ++j) { | |
m_z = (36969 * (m_z & 65535) + (m_z >> 16)) | 0; | |
m_w = (18000 * (m_w & 65535) + (m_w >> 16)) | 0; | |
result2 = ((m_z << 16) + m_w) | 0; | |
} | |
} | |
return [result1, result2]; | |
} | |
var lBar = String.fromCharCode(322); | |
var result = foo(lBar); | |
if (result[0] != lBar) | |
throw "Bad result1: " + result[0]; | |
if (result[1] != 561434430) | |
throw "Bad result2: " + result[1]; |