diff options
author | Tobias Nießen <tniessen@tnie.de> | 2017-06-17 13:50:25 +0200 |
---|---|---|
committer | Tobias Nießen <tniessen@tnie.de> | 2017-06-20 19:43:01 +0200 |
commit | a0f728434617c1b84e20a56da33ed888dc254508 (patch) | |
tree | 9cb3002f83b5b4c96a924ab237736fe2e358ddb2 /lib | |
parent | d2913384aaeaf08fddb52e25e01f84c62e96e240 (diff) | |
download | android-node-v8-a0f728434617c1b84e20a56da33ed888dc254508.tar.gz android-node-v8-a0f728434617c1b84e20a56da33ed888dc254508.tar.bz2 android-node-v8-a0f728434617c1b84e20a56da33ed888dc254508.zip |
errors,process: fix error message of hrtime()
process.hrtime() incorrectly passed the function name to
errors.TypeError instead of the name of the argument.
Additionally, the type of the actual argument was added to the error
message and a new error code ERR_INVALID_ARRAY_LENGTH was added.
PR-URL: https://github.com/nodejs/node/pull/13739
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/internal/errors.js | 9 | ||||
-rw-r--r-- | lib/internal/process.js | 19 |
2 files changed, 21 insertions, 7 deletions
diff --git a/lib/internal/errors.js b/lib/internal/errors.js index a73d459931..dd30097c43 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -122,6 +122,15 @@ E('ERR_HTTP_INVALID_CHAR', 'Invalid character in statusMessage.'); E('ERR_HTTP_INVALID_STATUS_CODE', (originalStatusCode) => `Invalid status code: ${originalStatusCode}`); E('ERR_INDEX_OUT_OF_RANGE', 'Index out of range'); +E('ERR_INVALID_ARRAY_LENGTH', + (name, length, actual) => { + let msg = `The "${name}" array must have a length of ${length}`; + if (arguments.length > 2) { + const len = Array.isArray(actual) ? actual.length : actual; + msg += `. Received length ${len}`; + } + return msg; + }); E('ERR_INVALID_ARG_TYPE', invalidArgType); E('ERR_INVALID_CALLBACK', 'callback must be a function'); E('ERR_INVALID_FD', (fd) => `"fd" must be a positive integer: ${fd}`); diff --git a/lib/internal/process.js b/lib/internal/process.js index aa5655d0ef..5254b5993b 100644 --- a/lib/internal/process.js +++ b/lib/internal/process.js @@ -78,14 +78,19 @@ function setup_hrtime() { _hrtime(hrValues); if (time !== undefined) { - if (Array.isArray(time) && time.length === 2) { - const sec = (hrValues[0] * 0x100000000 + hrValues[1]) - time[0]; - const nsec = hrValues[2] - time[1]; - const needsBorrow = nsec < 0; - return [needsBorrow ? sec - 1 : sec, needsBorrow ? nsec + 1e9 : nsec]; + if (!Array.isArray(time)) { + throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'time', 'Array', + time); } - throw new errors.TypeError('ERR_INVALID_ARG_TYPE', - 'process.hrtime()', 'Array'); + if (time.length !== 2) { + throw new errors.TypeError('ERR_INVALID_ARRAY_LENGTH', 'time', 2, + time); + } + + const sec = (hrValues[0] * 0x100000000 + hrValues[1]) - time[0]; + const nsec = hrValues[2] - time[1]; + const needsBorrow = nsec < 0; + return [needsBorrow ? sec - 1 : sec, needsBorrow ? nsec + 1e9 : nsec]; } return [ |