369 lines
8.1 KiB
JavaScript
369 lines
8.1 KiB
JavaScript
"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");
|