in x-element.js [239:257]
listen(element, type, callback, options) {
if (XElement.#typeIsWrong(EventTarget, element)) {
const typeName = XElement.#getTypeName(element);
throw new Error(`Unexpected element passed to listen (expected EventTarget, got ${typeName}).`);
}
if (XElement.#typeIsWrong(String, type)) {
const typeName = XElement.#getTypeName(type);
throw new Error(`Unexpected type passed to listen (expected String, got ${typeName}).`);
}
if (XElement.#typeIsWrong(Function, callback)) {
const typeName = XElement.#getTypeName(callback);
throw new Error(`Unexpected callback passed to listen (expected Function, got ${typeName}).`);
}
if (XElement.#notNullish(options) && XElement.#typeIsWrong(Object, options)) {
const typeName = XElement.#getTypeName(options);
throw new Error(`Unexpected options passed to listen (expected Object, got ${typeName}).`);
}
XElement.#addListener(this, element, type, callback, options);
}