summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/js/10_permissions.js8
-rw-r--r--runtime/js/40_process.js26
-rw-r--r--runtime/js/99_main.js12
-rw-r--r--tests/unit/command_test.ts56
-rw-r--r--tests/unit/permissions_test.ts4
5 files changed, 71 insertions, 35 deletions
diff --git a/runtime/js/10_permissions.js b/runtime/js/10_permissions.js
index ff5abc01d..ef3135868 100644
--- a/runtime/js/10_permissions.js
+++ b/runtime/js/10_permissions.js
@@ -95,7 +95,7 @@ class PermissionStatus extends EventTarget {
*/
constructor(status = null, key = null) {
if (key != illegalConstructorKey) {
- throw new TypeError("Illegal constructor.");
+ throw new TypeError("Illegal constructor");
}
super();
this.#status = status;
@@ -194,7 +194,7 @@ function formDescriptor(desc) {
class Permissions {
constructor(key = null) {
if (key != illegalConstructorKey) {
- throw new TypeError("Illegal constructor.");
+ throw new TypeError("Illegal constructor");
}
}
@@ -209,7 +209,7 @@ class Permissions {
querySync(desc) {
if (!isValidDescriptor(desc)) {
throw new TypeError(
- `The provided value "${desc?.name}" is not a valid permission name.`,
+ `The provided value "${desc?.name}" is not a valid permission name`,
);
}
@@ -230,7 +230,7 @@ class Permissions {
revokeSync(desc) {
if (!isValidDescriptor(desc)) {
throw new TypeError(
- `The provided value "${desc?.name}" is not a valid permission name.`,
+ `The provided value "${desc?.name}" is not a valid permission name`,
);
}
diff --git a/runtime/js/40_process.js b/runtime/js/40_process.js
index ac9411916..2592c5c46 100644
--- a/runtime/js/40_process.js
+++ b/runtime/js/40_process.js
@@ -101,7 +101,7 @@ class Process {
async output() {
if (!this.stdout) {
- throw new TypeError("stdout was not piped");
+ throw new TypeError("Cannot collect output: 'stdout' is not piped");
}
try {
return await readAll(this.stdout);
@@ -112,7 +112,7 @@ class Process {
async stderrOutput() {
if (!this.stderr) {
- throw new TypeError("stderr was not piped");
+ throw new TypeError("Cannot collect output: 'stderr' is not piped");
}
try {
return await readAll(this.stderr);
@@ -241,7 +241,7 @@ class ChildProcess {
#stdin = null;
get stdin() {
if (this.#stdin == null) {
- throw new TypeError("stdin is not piped");
+ throw new TypeError("Cannot get 'stdin': 'stdin' is not piped");
}
return this.#stdin;
}
@@ -249,7 +249,7 @@ class ChildProcess {
#stdout = null;
get stdout() {
if (this.#stdout == null) {
- throw new TypeError("stdout is not piped");
+ throw new TypeError("Cannot get 'stdout': 'stdout' is not piped");
}
return this.#stdout;
}
@@ -257,7 +257,7 @@ class ChildProcess {
#stderr = null;
get stderr() {
if (this.#stderr == null) {
- throw new TypeError("stderr is not piped");
+ throw new TypeError("Cannot get 'stderr': 'stderr' is not piped");
}
return this.#stderr;
}
@@ -273,7 +273,7 @@ class ChildProcess {
extraPipeRids,
} = null) {
if (key !== illegalConstructorKey) {
- throw new TypeError("Illegal constructor.");
+ throw new TypeError("Illegal constructor");
}
this.#rid = rid;
@@ -313,12 +313,12 @@ class ChildProcess {
async output() {
if (this.#stdout?.locked) {
throw new TypeError(
- "Can't collect output because stdout is locked",
+ "Cannot collect output: 'stdout' is locked",
);
}
if (this.#stderr?.locked) {
throw new TypeError(
- "Can't collect output because stderr is locked",
+ "Cannot collect output: 'stderr' is locked",
);
}
@@ -334,13 +334,13 @@ class ChildProcess {
signal: status.signal,
get stdout() {
if (stdout == null) {
- throw new TypeError("stdout is not piped");
+ throw new TypeError("Cannot get 'stdout': 'stdout' is not piped");
}
return stdout;
},
get stderr() {
if (stderr == null) {
- throw new TypeError("stderr is not piped");
+ throw new TypeError("Cannot get 'stderr': 'stderr' is not piped");
}
return stderr;
},
@@ -349,7 +349,7 @@ class ChildProcess {
kill(signo = "SIGTERM") {
if (this.#waitComplete) {
- throw new TypeError("Child process has already terminated.");
+ throw new TypeError("Child process has already terminated");
}
op_spawn_kill(this.#rid, signo);
}
@@ -428,13 +428,13 @@ function spawnSync(command, {
signal: result.status.signal,
get stdout() {
if (result.stdout == null) {
- throw new TypeError("stdout is not piped");
+ throw new TypeError("Cannot get 'stdout': 'stdout' is not piped");
}
return result.stdout;
},
get stderr() {
if (result.stderr == null) {
- throw new TypeError("stderr is not piped");
+ throw new TypeError("Cannot get 'stderr': 'stderr' is not piped");
}
return result.stderr;
},
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js
index 0496da9e7..f447a9eef 100644
--- a/runtime/js/99_main.js
+++ b/runtime/js/99_main.js
@@ -88,7 +88,7 @@ import {
import { SymbolDispose, SymbolMetadata } from "ext:deno_web/00_infra.js";
// deno-lint-ignore prefer-primordials
if (Symbol.metadata) {
- throw "V8 supports Symbol.metadata now, no need to shim it!";
+ throw "V8 supports Symbol.metadata now, no need to shim it";
}
ObjectDefineProperties(Symbol, {
dispose: {
@@ -230,7 +230,7 @@ let loadedMainWorkerScript = false;
function importScripts(...urls) {
if (op_worker_get_type() === "module") {
- throw new TypeError("Can't import scripts in a module worker.");
+ throw new TypeError("Cannot import scripts in a module worker");
}
const baseUrl = location.getLocationHref();
@@ -239,7 +239,7 @@ function importScripts(...urls) {
return new url.URL(scriptUrl, baseUrl ?? undefined).href;
} catch {
throw new DOMException(
- "Failed to parse URL.",
+ `Failed to parse URL: ${scriptUrl}`,
"SyntaxError",
);
}
@@ -722,7 +722,7 @@ function bootstrapMainRuntime(runtimeOptions, warmup = false) {
return jupyterNs;
}
throw new Error(
- "Deno.jupyter is only available in `deno jupyter` subcommand.",
+ "Deno.jupyter is only available in `deno jupyter` subcommand",
);
},
set(val) {
@@ -751,7 +751,7 @@ function bootstrapMainRuntime(runtimeOptions, warmup = false) {
// https://github.com/tc39/proposal-temporal/pull/2914
// https://github.com/tc39/proposal-temporal/pull/2925
if (typeof globalThis.Temporal.Instant.fromEpochSeconds === "undefined") {
- throw "V8 removes obsoleted Temporal API now, no need to delete them!";
+ throw "V8 removes obsoleted Temporal API now, no need to delete them";
}
delete globalThis.Temporal.Instant.fromEpochSeconds;
delete globalThis.Temporal.Instant.fromEpochMicroseconds;
@@ -960,7 +960,7 @@ function bootstrapWorkerRuntime(
// https://github.com/tc39/proposal-temporal/pull/2914
// https://github.com/tc39/proposal-temporal/pull/2925
if (typeof globalThis.Temporal.Instant.fromEpochSeconds === "undefined") {
- throw "V8 removes obsoleted Temporal API now, no need to delete them!";
+ throw "V8 removes obsoleted Temporal API now, no need to delete them";
}
delete globalThis.Temporal.Instant.fromEpochSeconds;
delete globalThis.Temporal.Instant.fromEpochMicroseconds;
diff --git a/tests/unit/command_test.ts b/tests/unit/command_test.ts
index 0a7891493..523d20cf3 100644
--- a/tests/unit/command_test.ts
+++ b/tests/unit/command_test.ts
@@ -73,8 +73,16 @@ Deno.test(
});
const child = command.spawn();
- assertThrows(() => child.stdout, TypeError, "stdout is not piped");
- assertThrows(() => child.stderr, TypeError, "stderr is not piped");
+ assertThrows(
+ () => child.stdout,
+ TypeError,
+ "Cannot get 'stdout': 'stdout' is not piped",
+ );
+ assertThrows(
+ () => child.stderr,
+ TypeError,
+ "Cannot get 'stderr': 'stderr' is not piped",
+ );
const msg = new TextEncoder().encode("hello");
const writer = child.stdin.getWriter();
@@ -99,9 +107,21 @@ Deno.test(
});
const child = command.spawn();
- assertThrows(() => child.stdin, TypeError, "stdin is not piped");
- assertThrows(() => child.stdout, TypeError, "stdout is not piped");
- assertThrows(() => child.stderr, TypeError, "stderr is not piped");
+ assertThrows(
+ () => child.stdin,
+ TypeError,
+ "Cannot get 'stdin': 'stdin' is not piped",
+ );
+ assertThrows(
+ () => child.stdout,
+ TypeError,
+ "Cannot get 'stdout': 'stdout' is not piped",
+ );
+ assertThrows(
+ () => child.stderr,
+ TypeError,
+ "Cannot get 'stderr': 'stderr' is not piped",
+ );
await child.status;
},
@@ -120,8 +140,16 @@ Deno.test(
});
const child = command.spawn();
- assertThrows(() => child.stdin, TypeError, "stdin is not piped");
- assertThrows(() => child.stderr, TypeError, "stderr is not piped");
+ assertThrows(
+ () => child.stdin,
+ TypeError,
+ "Cannot get 'stdin': 'stdin' is not piped",
+ );
+ assertThrows(
+ () => child.stderr,
+ TypeError,
+ "Cannot get 'stderr': 'stderr' is not piped",
+ );
const readable = child.stdout.pipeThrough(new TextDecoderStream());
const reader = readable.getReader();
@@ -154,8 +182,16 @@ Deno.test(
});
const child = command.spawn();
- assertThrows(() => child.stdin, TypeError, "stdin is not piped");
- assertThrows(() => child.stdout, TypeError, "stdout is not piped");
+ assertThrows(
+ () => child.stdin,
+ TypeError,
+ "Cannot get 'stdin': 'stdin' is not piped",
+ );
+ assertThrows(
+ () => child.stdout,
+ TypeError,
+ "Cannot get 'stdout': 'stdout' is not piped",
+ );
const readable = child.stderr.pipeThrough(new TextDecoderStream());
const reader = readable.getReader();
@@ -955,7 +991,7 @@ Deno.test(
assertThrows(
() => child.kill(),
TypeError,
- "Child process has already terminated.",
+ "Child process has already terminated",
);
},
);
diff --git a/tests/unit/permissions_test.ts b/tests/unit/permissions_test.ts
index e18b0c8f2..82524d556 100644
--- a/tests/unit/permissions_test.ts
+++ b/tests/unit/permissions_test.ts
@@ -120,7 +120,7 @@ Deno.test(function permissionQueryForReadReturnsSameStatusSync() {
});
Deno.test(function permissionsIllegalConstructor() {
- assertThrows(() => new Deno.Permissions(), TypeError, "Illegal constructor.");
+ assertThrows(() => new Deno.Permissions(), TypeError, "Illegal constructor");
assertEquals(Deno.Permissions.length, 0);
});
@@ -128,7 +128,7 @@ Deno.test(function permissionStatusIllegalConstructor() {
assertThrows(
() => new Deno.PermissionStatus(),
TypeError,
- "Illegal constructor.",
+ "Illegal constructor",
);
assertEquals(Deno.PermissionStatus.length, 0);
});