tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_named_getter_enumerability.html (1800B)


      1 <!DOCTYPE html>
      2 <meta charset=utf-8>
      3 <title>Test for named getter enumerability</title>
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <div id="log"></div>
      7 <script>
      8 /* global test, assert_equals, assert_true, assert_false, assert_not_equals */
      9 test(function() {
     10  var list = document.getElementsByTagName("div");
     11  var desc = Object.getOwnPropertyDescriptor(list, "0");
     12  assert_equals(typeof desc, "object", "Should have a '0' property");
     13  assert_true(desc.enumerable, "'0' property should be enumerable");
     14  desc = Object.getOwnPropertyDescriptor(list, "log");
     15  assert_equals(typeof desc, "object", "Should have a 'log' property");
     16  assert_false(desc.enumerable, "'log' property should not be enumerable");
     17 }, "Correct getOwnPropertyDescriptor behavior");
     18 test(function() {
     19  var list = document.getElementsByTagName("div");
     20  var props = [];
     21  for (var prop in list) {
     22    props.push(prop);
     23  }
     24  assert_not_equals(props.indexOf("0"), -1, "Should enumerate '0'");
     25  assert_equals(props.indexOf("log"), -1, "Should not enumerate 'log'");
     26 }, "Correct enumeration behavior");
     27 test(function() {
     28  var list = document.getElementsByTagName("div");
     29  var props = Object.keys(list);
     30  assert_not_equals(props.indexOf("0"), -1, "Keys should contain '0'");
     31  assert_equals(props.indexOf("log"), -1, "Keys should not contain 'log'");
     32 }, "Correct keys() behavior");
     33 test(function() {
     34  var list = document.getElementsByTagName("div");
     35  var props = Object.getOwnPropertyNames(list);
     36  assert_not_equals(props.indexOf("0"), -1,
     37                    "own prop names should contain '0'");
     38  assert_not_equals(props.indexOf("log"), -1,
     39                    "own prop names should contain 'log'");
     40 }, "Correct getOwnPropertyNames() behavior");
     41 </script>