diff --git a/lib/zlib.js b/lib/zlib.js index 0eb071a372c137..183ff7bfcf4b5c 100644 --- a/lib/zlib.js +++ b/lib/zlib.js @@ -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) && diff --git a/test/parallel/test-zlib-convenience-methods.js b/test/parallel/test-zlib-convenience-methods.js index 1cc393914a947e..5b7699f429efe7 100644 --- a/test/parallel/test-zlib-convenience-methods.js +++ b/test/parallel/test-zlib-convenience-methods.js @@ -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' + } +);