UNPKG

jsdom

Version:

A JavaScript implementation of many web standards

47 lines (42 loc) 1.09 kB
"use strict"; const idlUtils = require("../generated/utils"); const legacyErrorCodes = { IndexSizeError: 1, HierarchyRequestError: 3, WrongDocumentError: 4, InvalidCharacterError: 5, NoModificationAllowedError: 7, NotFoundError: 8, NotSupportedError: 9, InUseAttributeError: 10, InvalidStateError: 11, SyntaxError: 12, InvalidModificationError: 13, NamespaceError: 14, InvalidAccessError: 15, TypeMismatchError: 17, SecurityError: 18, NetworkError: 19, AbortError: 20, URLMismatchError: 21, QuotaExceededError: 22, TimeoutError: 23, InvalidNodeTypeError: 24, DataCloneError: 25 }; exports.implementation = class DOMExceptionImpl { constructor(globalObject, [message, name]) { this.name = name; this.message = message; } get code() { return legacyErrorCodes[this.name] || 0; } }; // A proprietary V8 extension that causes the stack property to appear. exports.init = impl => { if (Error.captureStackTrace) { const wrapper = idlUtils.wrapperForImpl(impl); Error.captureStackTrace(wrapper, wrapper.constructor); } };