summaryrefslogtreecommitdiff
path: root/runtime/js/01_web_util.js
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/js/01_web_util.js')
-rw-r--r--runtime/js/01_web_util.js77
1 files changed, 1 insertions, 76 deletions
diff --git a/runtime/js/01_web_util.js b/runtime/js/01_web_util.js
index 9b51021f9..ca3d74826 100644
--- a/runtime/js/01_web_util.js
+++ b/runtime/js/01_web_util.js
@@ -2,15 +2,7 @@
"use strict";
((window) => {
- const {
- FunctionPrototypeCall,
- Map,
- MapPrototypeGet,
- MapPrototypeSet,
- ObjectDefineProperty,
- TypeError,
- Symbol,
- } = window.__bootstrap.primordials;
+ const { TypeError, Symbol } = window.__bootstrap.primordials;
const illegalConstructorKey = Symbol("illegalConstructorKey");
function requiredArguments(
@@ -26,75 +18,8 @@
}
}
- const handlerSymbol = Symbol("eventHandlers");
- function makeWrappedHandler(handler, isSpecialErrorEventHandler) {
- function wrappedHandler(...args) {
- if (typeof wrappedHandler.handler !== "function") {
- return;
- }
- if (isSpecialErrorEventHandler) {
- const evt = args[0];
- if (evt instanceof ErrorEvent && evt.type === "error") {
- const ret = FunctionPrototypeCall(
- wrappedHandler.handler,
- this,
- evt.message,
- evt.filename,
- evt.lineno,
- evt.colno,
- evt.error,
- );
- if (ret === true) {
- evt.preventDefault();
- }
- return;
- }
- }
-
- return FunctionPrototypeCall(wrappedHandler.handler, this, ...args);
- }
- wrappedHandler.handler = handler;
- return wrappedHandler;
- }
- function defineEventHandler(
- emitter,
- name,
- defaultValue = undefined,
- isSpecialErrorEventHandler = false,
- ) {
- // HTML specification section 8.1.5.1
- ObjectDefineProperty(emitter, `on${name}`, {
- get() {
- if (!this[handlerSymbol]) {
- return defaultValue;
- }
-
- return MapPrototypeGet(this[handlerSymbol], name)?.handler ??
- defaultValue;
- },
- set(value) {
- if (!this[handlerSymbol]) {
- this[handlerSymbol] = new Map();
- }
- let handlerWrapper = MapPrototypeGet(this[handlerSymbol], name);
- if (handlerWrapper) {
- handlerWrapper.handler = value;
- } else {
- handlerWrapper = makeWrappedHandler(
- value,
- isSpecialErrorEventHandler,
- );
- this.addEventListener(name, handlerWrapper);
- }
- MapPrototypeSet(this[handlerSymbol], name, handlerWrapper);
- },
- configurable: true,
- enumerable: true,
- });
- }
window.__bootstrap.webUtil = {
illegalConstructorKey,
requiredArguments,
- defineEventHandler,
};
})(this);