<body>
<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=7640">bug 7640</a>:
Menu items are displayed as "undefined".</p>
<p>Node.item() should not exist.</p>
<div id=result>&nbsp;</div>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();

    divElement = document.getElementById("result");
    textNode = divElement.firstChild;

    if (textNode.item != undefined)
        document.getElementById("result").firstChild.data="FAILURE: Node.item = " + textNode.item;
    else if (divElement.item != undefined)
        document.getElementById("result").firstChild.data="FAILURE: HTMLDivElement.item = " + divElement.item;
    else
        document.getElementById("result").firstChild.data="SUCCESS";
</script>
</body>
