1'use strict';
2
3test(function() {
4  // https://www.w3.org/Bugs/Public/show_bug.cgi?id=27732
5  var constants = [
6    "INDEX_SIZE_ERR",
7    "DOMSTRING_SIZE_ERR",
8    "HIERARCHY_REQUEST_ERR",
9    "WRONG_DOCUMENT_ERR",
10    "INVALID_CHARACTER_ERR",
11    "NO_DATA_ALLOWED_ERR",
12    "NO_MODIFICATION_ALLOWED_ERR",
13    "NOT_FOUND_ERR",
14    "NOT_SUPPORTED_ERR",
15    "INUSE_ATTRIBUTE_ERR",
16    "INVALID_STATE_ERR",
17    "SYNTAX_ERR",
18    "INVALID_MODIFICATION_ERR",
19    "NAMESPACE_ERR",
20    "INVALID_ACCESS_ERR",
21    "VALIDATION_ERR",
22    "TYPE_MISMATCH_ERR",
23    "SECURITY_ERR",
24    "NETWORK_ERR",
25    "ABORT_ERR",
26    "URL_MISMATCH_ERR",
27    "QUOTA_EXCEEDED_ERR",
28    "TIMEOUT_ERR",
29    "INVALID_NODE_TYPE_ERR",
30    "DATA_CLONE_ERR"
31  ]
32  var objects = [
33    [DOMException, "DOMException constructor object"],
34    [DOMException.prototype, "DOMException prototype object"]
35  ]
36  constants.forEach(function(name, i) {
37    objects.forEach(function(o) {
38      var object = o[0], description = o[1];
39      test(function() {
40        assert_equals(object[name], i + 1, name)
41        assert_own_property(object, name)
42        var pd = Object.getOwnPropertyDescriptor(object, name)
43        assert_false("get" in pd, "get")
44        assert_false("set" in pd, "set")
45        assert_false(pd.writable, "writable")
46        assert_true(pd.enumerable, "enumerable")
47        assert_false(pd.configurable, "configurable")
48      }, "Constant " + name + " on " + description)
49    })
50  })
51})
52