<html>
    <head>
        <script>
            document.childNodes.expando = "foo";

            function getNodeList() {
                return document.childNodes;
            }
            function getOptions() {
                return document.createElement("select").options;
            }

            function tryToUseNodeList(nodeList, ok) {
                function expectException(op, reason) {
                    try {
                        var result = op();
                        ok(false, "should have thrown an exception, got: " + result);
                    } catch (e) {
                        ok(/Permission denied/.test(e.toString()), reason);
                    }
                }

                expectException(function() { nodeList.length = 2; }, "should not be able to set attributes");
                expectException(function() { nodeList.item(0); }, "should not have access to any functions");
                expectException(function() { nodeList.foo = "foo"; }, "should not be able to add expandos");
            }
        </script>
    </head>
    <body>
    </body>
</html>
