Socket
Socket
Sign inDemoInstall

domexception

Package Overview
Dependencies
1
Maintainers
6
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.1 to 2.0.0

index.js

2

lib/DOMException-impl.js

@@ -6,3 +6,3 @@ "use strict";

exports.implementation = class DOMExceptionImpl {
constructor([message, name]) {
constructor(globalObject, [message, name]) {
this.name = name;

@@ -9,0 +9,0 @@ this.message = message;

@@ -7,299 +7,16 @@ "use strict";

const impl = utils.implSymbol;
const ctorRegistry = utils.ctorRegistrySymbol;
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: [],
// When an interface-module that implements this interface as a mixin is loaded, it will append its own `.is()`
// method into this array. It allows objects that directly implements *those* interfaces to be recognized as
// implementing this mixin interface.
_mixedIntoPredicates: [],
is(obj) {
if (obj) {
if (obj[impl] instanceof Impl.implementation) {
if (utils.hasOwn(obj, impl) && obj[impl] instanceof Impl.implementation) {
return true;
}
for (let i = 0; i < module.exports.mixedInto.length; ++i) {
if (obj instanceof module.exports.mixedInto[i]) {
for (const isMixedInto of module.exports._mixedIntoPredicates) {
if (isMixedInto(obj)) {
return true;

@@ -318,4 +35,4 @@ }

const wrapper = utils.wrapperForImpl(obj);
for (let i = 0; i < module.exports.mixedInto.length; ++i) {
if (wrapper instanceof module.exports.mixedInto[i]) {
for (const isMixedInto of module.exports._mixedIntoPredicates) {
if (isMixedInto(wrapper)) {
return true;

@@ -334,25 +51,30 @@ }

create(constructorArgs, privateData) {
let obj = Object.create(DOMException.prototype);
this.setup(obj, constructorArgs, privateData);
create(globalObject, constructorArgs, privateData) {
if (globalObject[ctorRegistry] === undefined) {
throw new Error("Internal error: invalid global object");
}
const ctor = globalObject[ctorRegistry]["DOMException"];
if (ctor === undefined) {
throw new Error("Internal error: constructor DOMException is not installed on the passed global object");
}
let obj = Object.create(ctor.prototype);
obj = iface.setup(obj, globalObject, constructorArgs, privateData);
return obj;
},
createImpl(constructorArgs, privateData) {
let obj = Object.create(DOMException.prototype);
this.setup(obj, constructorArgs, privateData);
createImpl(globalObject, constructorArgs, privateData) {
const obj = iface.create(globalObject, constructorArgs, privateData);
return utils.implForWrapper(obj);
},
_internalSetup(obj) {},
setup(obj, constructorArgs, privateData) {
if (!privateData) privateData = {};
setup(obj, globalObject, constructorArgs = [], privateData = {}) {
privateData.wrapper = obj;
this._internalSetup(obj);
iface._internalSetup(obj);
Object.defineProperty(obj, impl, {
value: new Impl.implementation(constructorArgs, privateData),
writable: false,
enumerable: false,
value: new Impl.implementation(globalObject, constructorArgs, privateData),
configurable: true
});
obj[impl][utils.wrapperSymbol] = obj;

@@ -362,7 +84,122 @@ if (Impl.init) {

}
return obj;
},
interface: DOMException,
expose: {
Window: { DOMException },
Worker: { DOMException }
install(globalObject) {
class DOMException {
constructor() {
const args = [];
{
let curArg = arguments[0];
if (curArg !== undefined) {
curArg = conversions["DOMString"](curArg, { context: "Failed to construct 'DOMException': parameter 1" });
} else {
curArg = "";
}
args.push(curArg);
}
{
let curArg = arguments[1];
if (curArg !== undefined) {
curArg = conversions["DOMString"](curArg, { context: "Failed to construct 'DOMException': parameter 2" });
} else {
curArg = "Error";
}
args.push(curArg);
}
return iface.setup(Object.create(new.target.prototype), globalObject, args);
}
get name() {
if (!this || !module.exports.is(this)) {
throw new TypeError("Illegal invocation");
}
return this[impl]["name"];
}
get message() {
if (!this || !module.exports.is(this)) {
throw new TypeError("Illegal invocation");
}
return this[impl]["message"];
}
get code() {
if (!this || !module.exports.is(this)) {
throw new TypeError("Illegal invocation");
}
return this[impl]["code"];
}
}
Object.defineProperties(DOMException.prototype, {
name: { enumerable: true },
message: { enumerable: true },
code: { enumerable: true },
[Symbol.toStringTag]: { value: "DOMException", configurable: true },
INDEX_SIZE_ERR: { value: 1, enumerable: true },
DOMSTRING_SIZE_ERR: { value: 2, enumerable: true },
HIERARCHY_REQUEST_ERR: { value: 3, enumerable: true },
WRONG_DOCUMENT_ERR: { value: 4, enumerable: true },
INVALID_CHARACTER_ERR: { value: 5, enumerable: true },
NO_DATA_ALLOWED_ERR: { value: 6, enumerable: true },
NO_MODIFICATION_ALLOWED_ERR: { value: 7, enumerable: true },
NOT_FOUND_ERR: { value: 8, enumerable: true },
NOT_SUPPORTED_ERR: { value: 9, enumerable: true },
INUSE_ATTRIBUTE_ERR: { value: 10, enumerable: true },
INVALID_STATE_ERR: { value: 11, enumerable: true },
SYNTAX_ERR: { value: 12, enumerable: true },
INVALID_MODIFICATION_ERR: { value: 13, enumerable: true },
NAMESPACE_ERR: { value: 14, enumerable: true },
INVALID_ACCESS_ERR: { value: 15, enumerable: true },
VALIDATION_ERR: { value: 16, enumerable: true },
TYPE_MISMATCH_ERR: { value: 17, enumerable: true },
SECURITY_ERR: { value: 18, enumerable: true },
NETWORK_ERR: { value: 19, enumerable: true },
ABORT_ERR: { value: 20, enumerable: true },
URL_MISMATCH_ERR: { value: 21, enumerable: true },
QUOTA_EXCEEDED_ERR: { value: 22, enumerable: true },
TIMEOUT_ERR: { value: 23, enumerable: true },
INVALID_NODE_TYPE_ERR: { value: 24, enumerable: true },
DATA_CLONE_ERR: { value: 25, enumerable: true }
});
Object.defineProperties(DOMException, {
INDEX_SIZE_ERR: { value: 1, enumerable: true },
DOMSTRING_SIZE_ERR: { value: 2, enumerable: true },
HIERARCHY_REQUEST_ERR: { value: 3, enumerable: true },
WRONG_DOCUMENT_ERR: { value: 4, enumerable: true },
INVALID_CHARACTER_ERR: { value: 5, enumerable: true },
NO_DATA_ALLOWED_ERR: { value: 6, enumerable: true },
NO_MODIFICATION_ALLOWED_ERR: { value: 7, enumerable: true },
NOT_FOUND_ERR: { value: 8, enumerable: true },
NOT_SUPPORTED_ERR: { value: 9, enumerable: true },
INUSE_ATTRIBUTE_ERR: { value: 10, enumerable: true },
INVALID_STATE_ERR: { value: 11, enumerable: true },
SYNTAX_ERR: { value: 12, enumerable: true },
INVALID_MODIFICATION_ERR: { value: 13, enumerable: true },
NAMESPACE_ERR: { value: 14, enumerable: true },
INVALID_ACCESS_ERR: { value: 15, enumerable: true },
VALIDATION_ERR: { value: 16, enumerable: true },
TYPE_MISMATCH_ERR: { value: 17, enumerable: true },
SECURITY_ERR: { value: 18, enumerable: true },
NETWORK_ERR: { value: 19, enumerable: true },
ABORT_ERR: { value: 20, enumerable: true },
URL_MISMATCH_ERR: { value: 21, enumerable: true },
QUOTA_EXCEEDED_ERR: { value: 22, enumerable: true },
TIMEOUT_ERR: { value: 23, enumerable: true },
INVALID_NODE_TYPE_ERR: { value: 24, enumerable: true },
DATA_CLONE_ERR: { value: 25, enumerable: true }
});
if (globalObject[ctorRegistry] === undefined) {
globalObject[ctorRegistry] = Object.create(null);
}
globalObject[ctorRegistry]["DOMException"] = DOMException;
Object.defineProperty(globalObject, "DOMException", {
configurable: true,
writable: true,
value: DOMException
});
}

@@ -372,2 +209,2 @@ }; // iface

const Impl = require(".//DOMException-impl.js");
const Impl = require("./DOMException-impl.js");

@@ -8,31 +8,10 @@ "use strict";

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 hasOwn(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
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");
const ctorRegistrySymbol = Symbol.for("[webidl2js] constructor registry");

@@ -73,10 +52,36 @@ function getSameObject(wrapper, prop, creator) {

function isArrayIndexPropName(P) {
if (typeof P !== "string") {
return false;
}
const i = P >>> 0;
if (i === Math.pow(2, 32) - 1) {
return false;
}
const s = `${i}`;
if (P !== s) {
return false;
}
return true;
}
const supportsPropertyIndex = Symbol("supports property index");
const supportedPropertyIndices = Symbol("supported property indices");
const supportsPropertyName = Symbol("supports property name");
const supportedPropertyNames = Symbol("supported property names");
const indexedGet = Symbol("indexed property get");
const indexedSetNew = Symbol("indexed property set new");
const indexedSetExisting = Symbol("indexed property set existing");
const namedGet = Symbol("named property get");
const namedSetNew = Symbol("named property set new");
const namedSetExisting = Symbol("named property set existing");
const namedDelete = Symbol("named property delete");
module.exports = exports = {
isObject,
getReferenceToBytes,
getCopyToBytes,
mixin,
hasOwn,
wrapperSymbol,
implSymbol,
getSameObject,
ctorRegistrySymbol,
wrapperForImpl,

@@ -87,3 +92,15 @@ implForWrapper,

iterInternalSymbol,
IteratorPrototype
IteratorPrototype,
isArrayIndexPropName,
supportsPropertyIndex,
supportedPropertyIndices,
supportsPropertyName,
supportedPropertyNames,
indexedGet,
indexedSetNew,
indexedSetExisting,
namedGet,
namedSetNew,
namedSetExisting,
namedDelete
};

@@ -12,13 +12,16 @@ {

],
"version": "1.0.1",
"version": "2.0.0",
"author": "Domenic Denicola <d@domenic.me> (https://domenic.me/)",
"license": "MIT",
"repository": "jsdom/domexception",
"main": "lib/public-api.js",
"main": "index.js",
"files": [
"index.js",
"webidl2js-wrapper.js",
"lib/"
],
"scripts": {
"prepublish": "node scripts/generate.js",
"pretest": "npm run prepublish",
"prepare": "node scripts/generate.js",
"init-wpt": "node scripts/get-latest-platform-tests.js",
"pretest": "npm run prepare && npm run init-wpt",
"test": "mocha",

@@ -31,8 +34,11 @@ "lint": "eslint lib"

"devDependencies": {
"eslint": "^4.3.0",
"eslint": "^6.7.2",
"mkdirp": "^0.5.1",
"mocha": "^3.5.0",
"request": "^2.81.0",
"webidl2js": "^7.2.0"
"mocha": "^6.2.2",
"request": "^2.88.0",
"webidl2js": "^11.0.0"
},
"engines": {
"node": ">=8"
}
}

@@ -20,1 +20,13 @@ # DOMException

```
## APIs
This package exposes two flavors of the `DOMException` interface depending on the imported module.
### `domexception` module
This module default-exports the `DOMException` interface constructor.
### `domexception/webidl2js-wrapper` module
This module exports the `DOMException` [interface wrapper API](https://github.com/jsdom/webidl2js#for-interfaces) generated by [webidl2js](https://github.com/jsdom/webidl2js).
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc