<html>
<head/>
<body>
<div id="description"/>
<div id="console"/>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
var console = document.getElementById("console");
var maxCount = 30;
function recieveMessage(evt) {
try {
var data = evt.data;
if (data.i == 0) {
console.innerHTML += "Done."
if (window.testRunner)
testRunner.notifyDone();
}
else {
if (data.i < maxCount) {
var success = true;
for (var j = data.i; j < maxCount; j++) {
success = success && data.a[j] == j;
if (data.a[j] != j) {
console.innerHTML += "Failure: data.i = " + data.i + " j = " + j + " data.a[j] = " + data.a[j] + "<br>";
break;
}
}
if (data.a.foobar != "FooBar")
success = false;
if (data.a.length != maxCount) {
success = false;
console.innerHTML += "FAIL: i = " + data.i + " length = " + data.a.length;
}
if (success)
console.innerHTML += "PASS: i = " + data.i + "<br>";
else
console.innerHTML += "FAIL: i = " + data.i + " array: " + JSON.stringify(data.a) + "<br>";
}
var a = [];
for (var j = data.i - 1; j < maxCount; j++) {
a[j] = j;
};
a.foobar = "FooBar";
window.postMessage({i:data.i - 1, a:a}, '*');
}
} catch (e) {
console.innerHTML += "Exception " + e + "<br>";
if (window.testRunner)
testRunner.notifyDone();
}
}
window.addEventListener('message', recieveMessage, false);
window.postMessage({i:maxCount}, '*');
</script>
</body>
</html>