diff options
Diffstat (limited to 'cli/rt/99_main.js')
-rw-r--r-- | cli/rt/99_main.js | 43 |
1 files changed, 3 insertions, 40 deletions
diff --git a/cli/rt/99_main.js b/cli/rt/99_main.js index f582994c7..40c9c636f 100644 --- a/cli/rt/99_main.js +++ b/cli/rt/99_main.js @@ -31,6 +31,7 @@ delete Object.prototype.__proto__; const denoNs = window.__bootstrap.denoNs; const denoNsUnstable = window.__bootstrap.denoNsUnstable; const errors = window.__bootstrap.errors.errors; + const { defineEventHandler } = window.__bootstrap.webUtil; let windowIsClosing = false; @@ -289,46 +290,8 @@ delete Object.prototype.__proto__; Object.setPrototypeOf(globalThis, Window.prototype); eventTarget.setEventTargetData(globalThis); - 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 when we can reuse code between web crates - // This function is very similar to `defineEventHandler` in `01_web_util.js` - // but it returns `null` instead of `undefined` is handler is not defined. - function defineEventHandler(emitter, name) { - // HTML specification section 8.1.5.1 - Object.defineProperty(emitter, `on${name}`, { - get() { - return this[handlerSymbol]?.get(name)?.handler ?? null; - }, - 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, - }); - } - defineEventHandler(window, "load"); - defineEventHandler(window, "unload"); + defineEventHandler(window, "load", null); + defineEventHandler(window, "unload", null); const { args, noColor, pid, ppid, unstableFlag } = runtimeStart(); |