summaryrefslogtreecommitdiff
path: root/extensions/web/03_abort_signal.js
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/web/03_abort_signal.js')
-rw-r--r--extensions/web/03_abort_signal.js39
1 files changed, 1 insertions, 38 deletions
diff --git a/extensions/web/03_abort_signal.js b/extensions/web/03_abort_signal.js
index 6551380da..54a485dab 100644
--- a/extensions/web/03_abort_signal.js
+++ b/extensions/web/03_abort_signal.js
@@ -3,7 +3,7 @@
((window) => {
const webidl = window.__bootstrap.webidl;
- const { setIsTrusted } = window.__bootstrap.event;
+ const { setIsTrusted, defineEventHandler } = window.__bootstrap.event;
const add = Symbol("add");
const signalAbort = Symbol("signalAbort");
@@ -81,43 +81,6 @@
webidl.configurePrototype(AbortController);
- const handlerSymbol = Symbol("eventHandlers");
-
- function makeWrappedHandler(handler) {
- function wrappedHandler(...args) {
- if (typeof wrappedHandler.handler !== "function") {
- return;
- }
- return wrappedHandler.handler.call(this, ...args);
- }
- wrappedHandler.handler = handler;
- return wrappedHandler;
- }
- // TODO(benjamingr) reuse this here and websocket where possible
- function defineEventHandler(emitter, name) {
- // HTML specification section 8.1.5.1
- Object.defineProperty(emitter, `on${name}`, {
- get() {
- return this[handlerSymbol]?.get(name)?.handler;
- },
- set(value) {
- if (!this[handlerSymbol]) {
- this[handlerSymbol] = new Map();
- }
- let handlerWrapper = this[handlerSymbol]?.get(name);
- if (handlerWrapper) {
- handlerWrapper.handler = value;
- } else {
- handlerWrapper = makeWrappedHandler(value);
- this.addEventListener(name, handlerWrapper);
- }
- this[handlerSymbol].set(name, handlerWrapper);
- },
- configurable: true,
- enumerable: true,
- });
- }
-
webidl.converters["AbortSignal"] = webidl.createInterfaceConverter(
"AbortSignal",
AbortSignal,