summaryrefslogtreecommitdiffstats
path: root/dom/bindings/test/test_named_getter_enumerability.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/bindings/test/test_named_getter_enumerability.html')
-rw-r--r--dom/bindings/test/test_named_getter_enumerability.html41
1 files changed, 41 insertions, 0 deletions
diff --git a/dom/bindings/test/test_named_getter_enumerability.html b/dom/bindings/test/test_named_getter_enumerability.html
new file mode 100644
index 0000000000..3894633a3b
--- /dev/null
+++ b/dom/bindings/test/test_named_getter_enumerability.html
@@ -0,0 +1,41 @@
+<!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>
+/* global test, assert_equals, assert_true, assert_false, assert_not_equals */
+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");
+ var 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");
+ var 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");
+ var 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>