summaryrefslogtreecommitdiff
path: root/cli/rt/99_main.js
diff options
context:
space:
mode:
Diffstat (limited to 'cli/rt/99_main.js')
-rw-r--r--cli/rt/99_main.js43
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();