2 '1': { type: 'INDEX_SIZE_ERR', name: 'IndexSizeError', message: '' },
3 '2': { type: 'DOMSTRING_SIZE_ERR', name: 'DOMStringSizeError', message: '' },
4 '3': { type: 'HIERARCHY_REQUEST_ERR', name: 'HierarchyRequestError', message: '' },
5 '4': { type: 'WRONG_DOCUMENT_ERR', name: 'WrongDocumentError', message: '' },
6 '5': { type: 'INVALID_CHARACTER_ERR', name: 'InvalidCharacterError', message: '' },
7 '6': { type: 'NO_DATA_ALLOWED_ERR', name: 'NoDataAllowedError', message: '' },
8 '7': { type: 'NO_MODIFICATION_ALLOWED_ERR', name: 'NoModificationAllowedError', message: '' },
9 '8': { type: 'NOT_FOUND_ERR', name: 'NotFoundError', message: '' },
10 '9': { type: 'NOT_SUPPORTED_ERR', name: 'Not_supportedError', message: '' },
11 '10': { type: 'INUSE_ATTRIBUTE_ERR', name: 'InuseAttributeError', message: '' },
12 '11': { type: 'INVALID_STATE_ERR', name: 'InvalidStateError', message: '' },
13 '12': { type: 'SYNTAX_ERR', name: 'SyntaxError', message: '' },
14 '13': { type: 'INVALID_MODIFICATION_ERR', name: 'InvalidModificationError', message: '' },
15 '14': { type: 'NAMESPACE_ERR', name: 'NamespaceError', message: '' },
16 '15': { type: 'INVALID_ACCESS_ERR', name: 'InvalidAccessError', message: '' },
17 '16': { type: 'VALIDATION_ERR', name: 'ValidationError', message: '' },
18 '17': { type: 'TYPE_MISMATCH_ERR', name: 'TypeMismatchError', message: '' },
19 '18': { type: 'SECURITY_ERR', name: 'SecurityError', message: '' },
20 '19': { type: 'NETWORK_ERR', name: 'NetworkError', message: '' },
21 '20': { type: 'ABORT_ERR', name: 'AbortError', message: '' },
22 '21': { type: 'URL_MISMATCH_ERR', name: 'UrlMismatchError', message: '' },
23 '22': { type: 'QUOTA_EXCEEDED_ERR', name: 'QuotaExceededError', message: '' },
24 '23': { type: 'TIMEOUT_ERR', name: 'TimeoutError', message: '' },
25 '24': { type: 'INVALID_NODE_TYPE_ERR', name: 'InvalidNodeTypeError', message: '' },
26 '25': { type: 'DATA_CLONE_ERR', name: 'DataCloneError', message: '' },
29 var CustomDOMException = function(code, message) {
30 var _code, _message, _name;
32 if (typeof code !== 'number') {
33 throw TypeError('Wrong argument type for Exception.');
34 } else if ((code in errors) === false) {
35 throw TypeError('Unknown exception code: ' + code);
38 _name = errors[_code].name;
39 if (typeof message === 'string') {
42 _message = errors[_code].message;
49 document.removeChild(document.createTextNode(""));
51 newException = Object.create(Object.getPrototypeOf(e));
62 Object.defineProperty(newException, "name", props);
64 Object.defineProperty(newException, "code", props);
65 props.value = _message;
66 Object.defineProperty(newException, "message", props);
68 props.value = function() {
69 return this.name + ": " + this.code;
71 Object.defineProperty(newException, "toString", props);
76 for (var value in errors) {
77 Object.defineProperty(CustomDOMException, errors[value].type,
78 { value: parseInt(value) });
81 exports.CustomDOMException = CustomDOMException;