1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/bindings/test/test_named_getter_enumerability.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,40 @@ 1.4 +<!DOCTYPE html> 1.5 +<meta charset=utf-8> 1.6 +<title>Test for named getter enumerability</title> 1.7 +<script src="/resources/testharness.js"></script> 1.8 +<script src="/resources/testharnessreport.js"></script> 1.9 +<div id="log"></div> 1.10 +<script> 1.11 +test(function() { 1.12 + var list = document.getElementsByTagName("div"); 1.13 + var desc = Object.getOwnPropertyDescriptor(list, "0"); 1.14 + assert_equals(typeof desc, "object", "Should have a '0' property"); 1.15 + assert_true(desc.enumerable, "'0' property should be enumerable"); 1.16 + desc = Object.getOwnPropertyDescriptor(list, "log"); 1.17 + assert_equals(typeof desc, "object", "Should have a 'log' property"); 1.18 + assert_false(desc.enumerable, "'log' property should not be enumerable"); 1.19 +}, "Correct getOwnPropertyDescriptor behavior"); 1.20 +test(function() { 1.21 + var list = document.getElementsByTagName("div"); 1.22 + props = []; 1.23 + for (var prop in list) { 1.24 + props.push(prop); 1.25 + } 1.26 + assert_not_equals(props.indexOf("0"), -1, "Should enumerate '0'"); 1.27 + assert_equals(props.indexOf("log"), -1, "Should not enumerate 'log'"); 1.28 +}, "Correct enumeration behavior"); 1.29 +test(function() { 1.30 + var list = document.getElementsByTagName("div"); 1.31 + props = Object.keys(list) 1.32 + assert_not_equals(props.indexOf("0"), -1, "Keys should contain '0'"); 1.33 + assert_equals(props.indexOf("log"), -1, "Keys should not contain 'log'"); 1.34 +}, "Correct keys() behavior"); 1.35 +test(function() { 1.36 + var list = document.getElementsByTagName("div"); 1.37 + props = Object.getOwnPropertyNames(list) 1.38 + assert_not_equals(props.indexOf("0"), -1, 1.39 + "own prop names should contain '0'"); 1.40 + assert_not_equals(props.indexOf("log"), -1, 1.41 + "own prop names should contain 'log'"); 1.42 +}, "Correct getOwnPropertyNames() behavior"); 1.43 +</script>