You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					369 lines
				
				8.1 KiB
			
		
		
			
		
	
	
					369 lines
				
				8.1 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const conversions = require("webidl-conversions");
							 | 
						||
| 
								 | 
							
								const utils = require("./utils.js");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const impl = utils.implSymbol;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function DOMException() {
							 | 
						||
| 
								 | 
							
								  const args = [];
							 | 
						||
| 
								 | 
							
								  for (let i = 0; i < arguments.length && i < 2; ++i) {
							 | 
						||
| 
								 | 
							
								    args[i] = arguments[i];
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (args[0] !== undefined) {
							 | 
						||
| 
								 | 
							
								    args[0] = conversions["DOMString"](args[0], { context: "Failed to construct 'DOMException': parameter 1" });
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    args[0] = "";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (args[1] !== undefined) {
							 | 
						||
| 
								 | 
							
								    args[1] = conversions["DOMString"](args[1], { context: "Failed to construct 'DOMException': parameter 2" });
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    args[1] = "Error";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  iface.setup(this, args);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "prototype", {
							 | 
						||
| 
								 | 
							
								  value: DOMException.prototype,
							 | 
						||
| 
								 | 
							
								  writable: false,
							 | 
						||
| 
								 | 
							
								  enumerable: false,
							 | 
						||
| 
								 | 
							
								  configurable: false
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "name", {
							 | 
						||
| 
								 | 
							
								  get() {
							 | 
						||
| 
								 | 
							
								    return this[impl]["name"];
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  enumerable: true,
							 | 
						||
| 
								 | 
							
								  configurable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "message", {
							 | 
						||
| 
								 | 
							
								  get() {
							 | 
						||
| 
								 | 
							
								    return this[impl]["message"];
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  enumerable: true,
							 | 
						||
| 
								 | 
							
								  configurable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "code", {
							 | 
						||
| 
								 | 
							
								  get() {
							 | 
						||
| 
								 | 
							
								    return this[impl]["code"];
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  enumerable: true,
							 | 
						||
| 
								 | 
							
								  configurable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "INDEX_SIZE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 1,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "INDEX_SIZE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 1,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "DOMSTRING_SIZE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 2,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "DOMSTRING_SIZE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 2,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "HIERARCHY_REQUEST_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 3,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "HIERARCHY_REQUEST_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 3,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "WRONG_DOCUMENT_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 4,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "WRONG_DOCUMENT_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 4,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "INVALID_CHARACTER_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 5,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "INVALID_CHARACTER_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 5,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "NO_DATA_ALLOWED_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 6,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "NO_DATA_ALLOWED_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 6,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "NO_MODIFICATION_ALLOWED_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 7,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "NO_MODIFICATION_ALLOWED_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 7,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "NOT_FOUND_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 8,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "NOT_FOUND_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 8,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "NOT_SUPPORTED_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 9,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "NOT_SUPPORTED_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 9,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "INUSE_ATTRIBUTE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 10,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "INUSE_ATTRIBUTE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 10,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "INVALID_STATE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 11,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "INVALID_STATE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 11,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "SYNTAX_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 12,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "SYNTAX_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 12,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "INVALID_MODIFICATION_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 13,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "INVALID_MODIFICATION_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 13,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "NAMESPACE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 14,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "NAMESPACE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 14,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "INVALID_ACCESS_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 15,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "INVALID_ACCESS_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 15,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "VALIDATION_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 16,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "VALIDATION_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 16,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "TYPE_MISMATCH_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 17,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "TYPE_MISMATCH_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 17,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "SECURITY_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 18,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "SECURITY_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 18,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "NETWORK_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 19,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "NETWORK_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 19,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "ABORT_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 20,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "ABORT_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 20,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "URL_MISMATCH_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 21,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "URL_MISMATCH_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 21,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "QUOTA_EXCEEDED_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 22,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "QUOTA_EXCEEDED_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 22,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "TIMEOUT_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 23,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "TIMEOUT_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 23,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "INVALID_NODE_TYPE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 24,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "INVALID_NODE_TYPE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 24,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException, "DATA_CLONE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 25,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, "DATA_CLONE_ERR", {
							 | 
						||
| 
								 | 
							
								  value: 25,
							 | 
						||
| 
								 | 
							
								  enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(DOMException.prototype, Symbol.toStringTag, {
							 | 
						||
| 
								 | 
							
								  value: "DOMException",
							 | 
						||
| 
								 | 
							
								  writable: false,
							 | 
						||
| 
								 | 
							
								  enumerable: false,
							 | 
						||
| 
								 | 
							
								  configurable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const iface = {
							 | 
						||
| 
								 | 
							
								  mixedInto: [],
							 | 
						||
| 
								 | 
							
								  is(obj) {
							 | 
						||
| 
								 | 
							
								    if (obj) {
							 | 
						||
| 
								 | 
							
								      if (obj[impl] instanceof Impl.implementation) {
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      for (let i = 0; i < module.exports.mixedInto.length; ++i) {
							 | 
						||
| 
								 | 
							
								        if (obj instanceof module.exports.mixedInto[i]) {
							 | 
						||
| 
								 | 
							
								          return true;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  isImpl(obj) {
							 | 
						||
| 
								 | 
							
								    if (obj) {
							 | 
						||
| 
								 | 
							
								      if (obj instanceof Impl.implementation) {
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      const wrapper = utils.wrapperForImpl(obj);
							 | 
						||
| 
								 | 
							
								      for (let i = 0; i < module.exports.mixedInto.length; ++i) {
							 | 
						||
| 
								 | 
							
								        if (wrapper instanceof module.exports.mixedInto[i]) {
							 | 
						||
| 
								 | 
							
								          return true;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  convert(obj, { context = "The provided value" } = {}) {
							 | 
						||
| 
								 | 
							
								    if (module.exports.is(obj)) {
							 | 
						||
| 
								 | 
							
								      return utils.implForWrapper(obj);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    throw new TypeError(`${context} is not of type 'DOMException'.`);
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  create(constructorArgs, privateData) {
							 | 
						||
| 
								 | 
							
								    let obj = Object.create(DOMException.prototype);
							 | 
						||
| 
								 | 
							
								    this.setup(obj, constructorArgs, privateData);
							 | 
						||
| 
								 | 
							
								    return obj;
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  createImpl(constructorArgs, privateData) {
							 | 
						||
| 
								 | 
							
								    let obj = Object.create(DOMException.prototype);
							 | 
						||
| 
								 | 
							
								    this.setup(obj, constructorArgs, privateData);
							 | 
						||
| 
								 | 
							
								    return utils.implForWrapper(obj);
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  _internalSetup(obj) {},
							 | 
						||
| 
								 | 
							
								  setup(obj, constructorArgs, privateData) {
							 | 
						||
| 
								 | 
							
								    if (!privateData) privateData = {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    privateData.wrapper = obj;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    this._internalSetup(obj);
							 | 
						||
| 
								 | 
							
								    Object.defineProperty(obj, impl, {
							 | 
						||
| 
								 | 
							
								      value: new Impl.implementation(constructorArgs, privateData),
							 | 
						||
| 
								 | 
							
								      writable: false,
							 | 
						||
| 
								 | 
							
								      enumerable: false,
							 | 
						||
| 
								 | 
							
								      configurable: true
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    obj[impl][utils.wrapperSymbol] = obj;
							 | 
						||
| 
								 | 
							
								    if (Impl.init) {
							 | 
						||
| 
								 | 
							
								      Impl.init(obj[impl], privateData);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  interface: DOMException,
							 | 
						||
| 
								 | 
							
								  expose: {
							 | 
						||
| 
								 | 
							
								    Window: { DOMException },
							 | 
						||
| 
								 | 
							
								    Worker: { DOMException }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}; // iface
							 | 
						||
| 
								 | 
							
								module.exports = iface;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const Impl = require(".//DOMException-impl.js");
							 |