aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTobias Nießen <tniessen@tnie.de>2017-06-17 13:50:25 +0200
committerTobias Nießen <tniessen@tnie.de>2017-06-20 19:43:01 +0200
commita0f728434617c1b84e20a56da33ed888dc254508 (patch)
tree9cb3002f83b5b4c96a924ab237736fe2e358ddb2 /lib
parentd2913384aaeaf08fddb52e25e01f84c62e96e240 (diff)
downloadandroid-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.js9
-rw-r--r--lib/internal/process.js19
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 [