UNPKG

@sebastianwessel/quickjs

Version:

A typescript package to execute JavaScript and TypeScript code in a WebAssembly QuickJS sandbox

3 lines (2 loc) 3.53 kB
declare const _default: "\nif (typeof globalThis.Event === 'undefined') {\n class Event {\n constructor(type, eventInitDict = {}) {\n this.type = String(type);\n this.bubbles = Boolean(eventInitDict.bubbles);\n this.cancelable = Boolean(eventInitDict.cancelable);\n this.composed = Boolean(eventInitDict.composed);\n this.defaultPrevented = false;\n this.eventPhase = 0;\n this.target = null;\n this.currentTarget = null;\n this.isTrusted = false;\n this.timeStamp = Date.now();\n }\n\n preventDefault() {\n if (this.cancelable) {\n this.defaultPrevented = true;\n }\n }\n\n stopImmediatePropagation() {}\n\n stopPropagation() {}\n }\n\n globalThis.Event = Event;\n}\n\nif (typeof globalThis.CustomEvent === 'undefined') {\n class CustomEvent extends globalThis.Event {\n constructor(type, eventInitDict = {}) {\n super(type, eventInitDict);\n this.detail = eventInitDict.detail ?? null;\n }\n }\n\n globalThis.CustomEvent = CustomEvent;\n}\n\nif (typeof globalThis.EventTarget === 'undefined') {\n class EventTarget {\n constructor() {\n Object.defineProperty(this, '__quickjsListeners', {\n configurable: false,\n enumerable: false,\n value: new Map(),\n writable: false,\n });\n }\n\n addEventListener(type, callback, options = {}) {\n if (callback == null) {\n return;\n }\n\n const eventType = String(type);\n const listeners = this.__quickjsListeners.get(eventType) ?? [];\n\n if (!listeners.some((listener) => listener.callback === callback)) {\n listeners.push({\n callback,\n once: Boolean(typeof options === 'object' && options?.once),\n });\n this.__quickjsListeners.set(eventType, listeners);\n }\n }\n\n removeEventListener(type, callback) {\n const eventType = String(type);\n const listeners = this.__quickjsListeners.get(eventType);\n\n if (!listeners) {\n return;\n }\n\n const nextListeners = listeners.filter((listener) => listener.callback !== callback);\n\n if (nextListeners.length > 0) {\n this.__quickjsListeners.set(eventType, nextListeners);\n } else {\n this.__quickjsListeners.delete(eventType);\n }\n }\n\n dispatchEvent(event) {\n if (!event || typeof event.type === 'undefined') {\n throw new TypeError(\"Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'.\");\n }\n\n const eventType = String(event.type);\n const listeners = [...(this.__quickjsListeners.get(eventType) ?? [])];\n\n try {\n event.target = event.target ?? this;\n event.currentTarget = this;\n } catch {}\n\n for (const listener of listeners) {\n if (listener.once) {\n this.removeEventListener(eventType, listener.callback);\n }\n\n if (typeof listener.callback === 'function') {\n listener.callback.call(this, event);\n } else if (typeof listener.callback?.handleEvent === 'function') {\n listener.callback.handleEvent(event);\n }\n }\n\n try {\n event.currentTarget = null;\n } catch {}\n\n return !event.defaultPrevented;\n }\n }\n\n globalThis.EventTarget = EventTarget;\n}\n\nexport const Event = globalThis.Event;\nexport const CustomEvent = globalThis.CustomEvent;\nexport default globalThis.EventTarget;\n"; export default _default;