summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/dts/lib.deno.ns.d.ts2
-rw-r--r--cli/main.rs1
-rw-r--r--cli/tests/integration/run_tests.rs6
-rw-r--r--cli/tests/testdata/op_exit_op_set_exit_code_in_worker.ts13
-rw-r--r--cli/tests/testdata/op_exit_op_set_exit_code_worker.js4
-rw-r--r--cli/tests/testdata/set_exit_code_in_worker.ts13
-rw-r--r--cli/tests/testdata/set_exit_code_worker.js4
7 files changed, 22 insertions, 21 deletions
diff --git a/cli/dts/lib.deno.ns.d.ts b/cli/dts/lib.deno.ns.d.ts
index f9c999cb3..675f5e7e6 100644
--- a/cli/dts/lib.deno.ns.d.ts
+++ b/cli/dts/lib.deno.ns.d.ts
@@ -480,6 +480,8 @@ declare namespace Deno {
/** Exit the Deno process with optional exit code. If no exit code is supplied
* then Deno will exit with return code of 0.
*
+ * In worker contexts this is an alias to `self.close();`.
+ *
* ```ts
* Deno.exit(5);
* ```
diff --git a/cli/main.rs b/cli/main.rs
index 25f472854..1f545d51f 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -178,7 +178,6 @@ fn create_web_worker_callback(
broadcast_channel: ps.broadcast_channel.clone(),
shared_array_buffer_store: Some(ps.shared_array_buffer_store.clone()),
compiled_wasm_module_store: Some(ps.compiled_wasm_module_store.clone()),
- exit_code: args.exit_code,
stdio: stdio.clone(),
};
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs
index 7ea95c312..aed1fe0fe 100644
--- a/cli/tests/integration/run_tests.rs
+++ b/cli/tests/integration/run_tests.rs
@@ -903,10 +903,10 @@ itest!(set_exit_code_2 {
exit_code: 42,
});
-itest!(set_exit_code_in_worker {
- args: "run --no-check --unstable --allow-read set_exit_code_in_worker.ts",
+itest!(op_exit_op_set_exit_code_in_worker {
+ args: "run --no-check --unstable --allow-read op_exit_op_set_exit_code_in_worker.ts",
+ exit_code: 21,
output: "empty.out",
- exit_code: 42,
});
itest!(deno_exit_tampering {
diff --git a/cli/tests/testdata/op_exit_op_set_exit_code_in_worker.ts b/cli/tests/testdata/op_exit_op_set_exit_code_in_worker.ts
new file mode 100644
index 000000000..74e8a53c5
--- /dev/null
+++ b/cli/tests/testdata/op_exit_op_set_exit_code_in_worker.ts
@@ -0,0 +1,13 @@
+// Set exit code to some value, we'll ensure that `Deno.exit()` and
+// setting exit code in worker context is a no-op and is an alias for
+// `self.close()`.
+
+// @ts-ignore Deno.core doesn't have type-defs
+Deno.core.opSync("op_set_exit_code", 21);
+
+const worker = new Worker(
+ new URL("op_exit_op_set_exit_code_worker.js", import.meta.url).href,
+ { type: "module" },
+);
+
+worker.postMessage("go");
diff --git a/cli/tests/testdata/op_exit_op_set_exit_code_worker.js b/cli/tests/testdata/op_exit_op_set_exit_code_worker.js
new file mode 100644
index 000000000..54e5cd562
--- /dev/null
+++ b/cli/tests/testdata/op_exit_op_set_exit_code_worker.js
@@ -0,0 +1,4 @@
+self.onmessage = () => {
+ Deno.core.opSync("op_set_exit_code", 42);
+ Deno.exit();
+};
diff --git a/cli/tests/testdata/set_exit_code_in_worker.ts b/cli/tests/testdata/set_exit_code_in_worker.ts
deleted file mode 100644
index c49c6efb2..000000000
--- a/cli/tests/testdata/set_exit_code_in_worker.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { deferred } from "../../../test_util/std/async/deferred.ts";
-
-const worker = new Worker(
- new URL("set_exit_code_worker.js", import.meta.url).href,
- { type: "module" },
-);
-
-const promise1 = deferred();
-worker.onmessage = (_e) => {
- promise1.resolve();
-};
-await promise1;
-worker.terminate();
diff --git a/cli/tests/testdata/set_exit_code_worker.js b/cli/tests/testdata/set_exit_code_worker.js
deleted file mode 100644
index d1c0123d1..000000000
--- a/cli/tests/testdata/set_exit_code_worker.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// Set exit code
-Deno.core.opSync("op_set_exit_code", 42);
-
-self.postMessage("ok");