From 635d9323a5a34542b4c14e3ff1f9717430375cc4 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 10 Dec 2018 00:11:29 +0100 Subject: [PATCH] zlib: throw TypeError if callback is missing Get a proper stack trace when no callback is passed. --- lib/zlib.js | 2 ++ test/parallel/test-zlib-convenience-methods.js | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/lib/zlib.js b/lib/zlib.js index 92286536ce6e43..a83341fd9fce92 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' + } +);