<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type='text/javascript' charset='utf-8'>
function print(message) {
	var paragraph = document.createElement("p");
	paragraph.appendChild(document.createTextNode(message));
	document.getElementById("console").appendChild(paragraph);
}

function test() {
	if (window.testRunner) {
		testRunner.dumpAsText();
	}

	for (x = 0; x < 1000; x++) {
		var canvas = document.getElementById("canvas");
		var context = canvas.getContext("2d");
		context.save();
	}
	
	print("passed");
}
</script>
</head>
<body onload="test();">
<p>This test checks for a regression against <i>rdar://problem/4152454 crash in KJS::ExprStatementNode::execute(KJS::ExecState*) in World Clock widget with TOT</i>. The original bug occurred because some objects did not properly mark themselves, and so the garbage collector prematurely destroyed them.</p>
<p>If the test passes, you will see the word "passed" below. Otherwise, it will crash.</p>
<hr>
<canvas id='canvas' width='172' height='172'></canvas>
<div id='console'/>
</body>
</html>
