zlib: throw TypeError if callback is missing

Get a proper stack trace when no callback is passed.

PR-URL: https://github.com/nodejs/node/pull/24929
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Weijia Wang <starkwang@126.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
Anna Henningsen 2018-12-10 00:11:29 +01:00
parent a0bdeb5530
commit 9a2654601e
No known key found for this signature in database
GPG Key ID: 9C63F3A6CD2AD8F9
2 changed files with 12 additions and 0 deletions

View File

@ -73,6 +73,8 @@ for (var ck = 0; ck < ckeys.length; ck++) {
}
function zlibBuffer(engine, buffer, callback) {
if (typeof callback !== 'function')
throw new ERR_INVALID_ARG_TYPE('callback', 'function', callback);
// Streams do not support non-Buffer ArrayBufferViews yet. Convert it to a
// Buffer without copying.
if (isArrayBufferView(buffer) &&

View File

@ -119,3 +119,13 @@ for (const [type, expect] of [
}
}
}
common.expectsError(
() => zlib.gzip('abc'),
{
code: 'ERR_INVALID_ARG_TYPE',
type: TypeError,
message: 'The "callback" argument must be of type function. ' +
'Received type undefined'
}
);