summaryrefslogtreecommitdiff
path: root/runtime/js
diff options
context:
space:
mode:
authorKenta Moriuchi <moriken@kimamass.com>2024-06-03 10:29:01 +0900
committerGitHub <noreply@github.com>2024-06-02 21:29:01 -0400
commiteda43c46de12ed589fdbe62ba0574887cfbb3574 (patch)
tree9703b6c92b2e3ca21768d9ae6d82730c41e41157 /runtime/js
parent754f21f0cd6b788ded48238c5acc3f635329d473 (diff)
fix: validate integer values in `Deno.exitCode` setter (#24068)
Diffstat (limited to 'runtime/js')
-rw-r--r--runtime/js/30_os.js15
1 files changed, 10 insertions, 5 deletions
diff --git a/runtime/js/30_os.js b/runtime/js/30_os.js
index 866fad287..f3dfda886 100644
--- a/runtime/js/30_os.js
+++ b/runtime/js/30_os.js
@@ -22,7 +22,8 @@ import {
const {
Error,
FunctionPrototypeBind,
- NumberParseInt,
+ NumberIsInteger,
+ RangeError,
SymbolFor,
TypeError,
} = primordials;
@@ -102,13 +103,17 @@ function getExitCode() {
}
function setExitCode(value) {
- const code = NumberParseInt(value, 10);
- if (typeof code !== "number") {
+ if (typeof value !== "number") {
throw new TypeError(
- `Exit code must be a number, got: ${code} (${typeof code}).`,
+ `Exit code must be a number, got: ${value} (${typeof value})`,
);
}
- op_set_exit_code(code);
+ if (!NumberIsInteger(value)) {
+ throw new RangeError(
+ `Exit code must be an integer, got: ${value}`,
+ );
+ }
+ op_set_exit_code(value);
}
function setEnv(key, value) {