This commit is contained in:
eric sciple 2020-01-24 12:20:47 -05:00
parent a004f0ae58
commit fc725ba36b
7280 changed files with 19 additions and 1796407 deletions

View file

@ -1,22 +0,0 @@
"use strict";
const legacyErrorCodes = require("./legacy-error-codes.json");
const idlUtils = require("./utils.js");
exports.implementation = class DOMExceptionImpl {
constructor([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);
}
};

View file

@ -1,368 +0,0 @@
"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");

View file

@ -1,27 +0,0 @@
{
"IndexSizeError": 1,
"DOMStringSizeError": 2,
"HierarchyRequestError": 3,
"WrongDocumentError": 4,
"InvalidCharacterError": 5,
"NoDataAllowedError": 6,
"NoModificationAllowedError": 7,
"NotFoundError": 8,
"NotSupportedError": 9,
"InUseAttributeError": 10,
"InvalidStateError": 11,
"SyntaxError": 12,
"InvalidModificationError": 13,
"NamespaceError": 14,
"InvalidAccessError": 15,
"ValidationError": 16,
"TypeMismatchError": 17,
"SecurityError": 18,
"NetworkError": 19,
"AbortError": 20,
"URLMismatchError": 21,
"QuotaExceededError": 22,
"TimeoutError": 23,
"InvalidNodeTypeError": 24,
"DataCloneError": 25
}

View file

@ -1,5 +0,0 @@
"use strict";
module.exports = require("./DOMException").interface;
Object.setPrototypeOf(module.exports.prototype, Error.prototype);

View file

@ -1,86 +0,0 @@
"use strict";
// Returns "Type(value) is Object" in ES terminology.
function isObject(value) {
return typeof value === "object" && value !== null || typeof value === "function";
}
function getReferenceToBytes(bufferSource) {
// Node.js' Buffer does not allow subclassing for now, so we can get away with a prototype object check for perf.
if (Object.getPrototypeOf(bufferSource) === Buffer.prototype) {
return bufferSource;
}
if (bufferSource instanceof ArrayBuffer) {
return Buffer.from(bufferSource);
}
return Buffer.from(bufferSource.buffer, bufferSource.byteOffset, bufferSource.byteLength);
}
function getCopyToBytes(bufferSource) {
return Buffer.from(getReferenceToBytes(bufferSource));
}
function mixin(target, source) {
const keys = Object.getOwnPropertyNames(source);
for (let i = 0; i < keys.length; ++i) {
if (keys[i] in target) {
continue;
}
Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));
}
}
const wrapperSymbol = Symbol("wrapper");
const implSymbol = Symbol("impl");
const sameObjectCaches = Symbol("SameObject caches");
function getSameObject(wrapper, prop, creator) {
if (!wrapper[sameObjectCaches]) {
wrapper[sameObjectCaches] = Object.create(null);
}
if (prop in wrapper[sameObjectCaches]) {
return wrapper[sameObjectCaches][prop];
}
wrapper[sameObjectCaches][prop] = creator();
return wrapper[sameObjectCaches][prop];
}
function wrapperForImpl(impl) {
return impl ? impl[wrapperSymbol] : null;
}
function implForWrapper(wrapper) {
return wrapper ? wrapper[implSymbol] : null;
}
function tryWrapperForImpl(impl) {
const wrapper = wrapperForImpl(impl);
return wrapper ? wrapper : impl;
}
function tryImplForWrapper(wrapper) {
const impl = implForWrapper(wrapper);
return impl ? impl : wrapper;
}
const iterInternalSymbol = Symbol("internal");
const IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
module.exports = exports = {
isObject,
getReferenceToBytes,
getCopyToBytes,
mixin,
wrapperSymbol,
implSymbol,
getSameObject,
wrapperForImpl,
implForWrapper,
tryWrapperForImpl,
tryImplForWrapper,
iterInternalSymbol,
IteratorPrototype
};