<html>
<script>
function runTest() {
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }
    document.getElementById('a').textContent = ' ';
    setTimeout(function() {
        document.getElementById('result').innerHTML = "SUCCESS!";
        if (window.testRunner)
            testRunner.notifyDone();
    }, 10);
    
}
</script>
<body onload="runTest()">
<div>This tests that adding a child node with only whitespace to an object tag does not create a new subframe, causing an assert.</div>
<div id="result">FAILURE</div>
<object id="a" data="1"/></object>
</html>
