summaryrefslogtreecommitdiff
path: root/runtime/js/99_main.js
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/js/99_main.js')
-rw-r--r--runtime/js/99_main.js36
1 files changed, 7 insertions, 29 deletions
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js
index b473acdef..71480e5a0 100644
--- a/runtime/js/99_main.js
+++ b/runtime/js/99_main.js
@@ -88,11 +88,6 @@ delete Object.prototype.__proto__;
core.opSync("op_worker_close");
}
- // TODO(bartlomieju): remove these functions
- // Stuff for workers
- const onmessage = () => {};
- const onerror = () => {};
-
function postMessage(message, transferOrOptions = {}) {
const prefix =
"Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope'";
@@ -144,39 +139,19 @@ delete Object.prototype.__proto__;
});
try {
- if (globalThis.onmessage) {
- await globalThis.onmessage(msgEvent);
- }
globalDispatchEvent(msgEvent);
} catch (e) {
- let handled = false;
-
const errorEvent = new ErrorEvent("error", {
cancelable: true,
message: e.message,
lineno: e.lineNumber ? e.lineNumber + 1 : undefined,
colno: e.columnNumber ? e.columnNumber + 1 : undefined,
filename: e.fileName,
- error: null,
+ error: e,
});
- if (globalThis["onerror"]) {
- const ret = globalThis.onerror(
- e.message,
- e.fileName,
- e.lineNumber,
- e.columnNumber,
- e,
- );
- handled = ret === true;
- }
-
globalDispatchEvent(errorEvent);
- if (errorEvent.defaultPrevented) {
- handled = true;
- }
-
- if (!handled) {
+ if (!errorEvent.defaultPrevented) {
core.opSync(
"op_worker_unhandled_error",
e.message,
@@ -465,8 +440,8 @@ delete Object.prototype.__proto__;
get: () => workerNavigator,
},
self: util.readOnly(globalThis),
- onmessage: util.writable(onmessage),
- onerror: util.writable(onerror),
+ onmessage: util.writable(null),
+ onerror: util.writable(null),
// TODO(bartlomieju): should be readonly?
close: util.nonEnumerable(workerClose),
postMessage: util.writable(postMessage),
@@ -585,6 +560,9 @@ delete Object.prototype.__proto__;
eventTarget.setEventTargetData(globalThis);
+ defineEventHandler(self, "message", null);
+ defineEventHandler(self, "error", null, true);
+
runtimeStart(
runtimeOptions,
internalName ?? name,