From fc3a966a2d0be8fc76c384603bf18b55e0bbcf14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 13 Jun 2022 23:53:04 +0200 Subject: Deno.exit() is an alias to self.close() in worker contexts (#14826) This commit changes Deno.exit() to be an alias to self.close() in worker contexts, and the provided exit code becomes is ignored. --- runtime/js/99_main.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'runtime/js') diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index ae0de3937..e96482ba2 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -581,7 +581,6 @@ delete Object.prototype.__proto__; defineEventHandler(window, "error"); defineEventHandler(window, "load"); defineEventHandler(window, "unload"); - const isUnloadDispatched = SymbolFor("isUnloadDispatched"); // Stores the flag for checking whether unload is dispatched or not. // This prevents the recursive dispatches of unload events. @@ -682,6 +681,11 @@ delete Object.prototype.__proto__; defineEventHandler(self, "message"); defineEventHandler(self, "error", undefined, true); + // `Deno.exit()` is an alias to `self.close()`. Setting and exit + // code using an op in worker context is a no-op. + os.setExitHandler((_exitCode) => { + workerClose(); + }); runtimeStart( runtimeOptions, -- cgit v1.2.3