<!DOCTYPE html> <meta charset=utf-8> <title>Test for named getter enumerability</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <div id="log"></div> <script> test(function() { var list = document.getElementsByTagName("div"); var desc = Object.getOwnPropertyDescriptor(list, "0"); assert_equals(typeof desc, "object", "Should have a '0' property"); assert_true(desc.enumerable, "'0' property should be enumerable"); desc = Object.getOwnPropertyDescriptor(list, "log"); assert_equals(typeof desc, "object", "Should have a 'log' property"); assert_false(desc.enumerable, "'log' property should not be enumerable"); }, "Correct getOwnPropertyDescriptor behavior"); test(function() { var list = document.getElementsByTagName("div"); props = []; for (var prop in list) { props.push(prop); } assert_not_equals(props.indexOf("0"), -1, "Should enumerate '0'"); assert_equals(props.indexOf("log"), -1, "Should not enumerate 'log'"); }, "Correct enumeration behavior"); test(function() { var list = document.getElementsByTagName("div"); props = Object.keys(list) assert_not_equals(props.indexOf("0"), -1, "Keys should contain '0'"); assert_equals(props.indexOf("log"), -1, "Keys should not contain 'log'"); }, "Correct keys() behavior"); test(function() { var list = document.getElementsByTagName("div"); props = Object.getOwnPropertyNames(list) assert_not_equals(props.indexOf("0"), -1, "own prop names should contain '0'"); assert_not_equals(props.indexOf("log"), -1, "own prop names should contain 'log'"); }, "Correct getOwnPropertyNames() behavior"); </script>