aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2018-03-19 14:15:10 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2018-03-25 01:45:40 +0100
commit058e7fb8e66cafae700c5cb437d08572150fa69f (patch)
treeda71c00ed80da4962617b616b9ef6546f60825b4 /lib
parent333adf61eb3d8d973b28e6c86d8b93d39d95cfe6 (diff)
downloadandroid-node-v8-058e7fb8e66cafae700c5cb437d08572150fa69f.tar.gz
android-node-v8-058e7fb8e66cafae700c5cb437d08572150fa69f.tar.bz2
android-node-v8-058e7fb8e66cafae700c5cb437d08572150fa69f.zip
process: fix error handling
This makes sure the proper error is returned. Right now the error is not specific enough. PR-URL: https://github.com/nodejs/node/pull/19445 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'lib')
-rw-r--r--lib/internal/process.js18
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/internal/process.js b/lib/internal/process.js
index 375fb314cb..b735ba2e4b 100644
--- a/lib/internal/process.js
+++ b/lib/internal/process.js
@@ -7,6 +7,7 @@ const {
ERR_CPU_USAGE,
ERR_INVALID_ARG_TYPE,
ERR_INVALID_ARRAY_LENGTH,
+ ERR_INVALID_OPT_VALUE,
ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET,
ERR_UNKNOWN_SIGNAL
}
@@ -41,11 +42,24 @@ function setup_cpuUsage() {
// If a previous value was passed in, ensure it has the correct shape.
if (prevValue) {
if (!previousValueIsValid(prevValue.user)) {
- throw new ERR_INVALID_ARG_TYPE('preValue.user', 'number');
+ if (typeof prevValue !== 'object')
+ throw new ERR_INVALID_ARG_TYPE('prevValue', 'object', prevValue);
+
+ if (typeof prevValue.user !== 'number') {
+ throw new ERR_INVALID_ARG_TYPE('prevValue.user',
+ 'number', prevValue.user);
+ }
+ throw new ERR_INVALID_OPT_VALUE.RangeError('prevValue.user',
+ prevValue.user);
}
if (!previousValueIsValid(prevValue.system)) {
- throw new ERR_INVALID_ARG_TYPE('preValue.system', 'number');
+ if (typeof prevValue.system !== 'number') {
+ throw new ERR_INVALID_ARG_TYPE('prevValue.system',
+ 'number', prevValue.system);
+ }
+ throw new ERR_INVALID_OPT_VALUE.RangeError('prevValue.system',
+ prevValue.system);
}
}