From eabedab38ec27e519d34aa0d5adf5cf8ac6cec36 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sun, 6 Oct 2019 14:07:53 +0200 Subject: [PATCH] [MessageHandler] Add a non-PRODUCTION/TESTING check to ensure that `wrapReason` is called with a valid `reason` There shouldn't be any situation where `reason` isn't either an `Error`, or a cloned "Error" sent via `postMessage`. --- src/shared/message_handler.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/shared/message_handler.js b/src/shared/message_handler.js index 451152dd2..2a3178255 100644 --- a/src/shared/message_handler.js +++ b/src/shared/message_handler.js @@ -31,7 +31,13 @@ const StreamKind = { }; function wrapReason(reason) { - if (typeof reason !== 'object') { + if (typeof PDFJSDev === 'undefined' || + PDFJSDev.test('!PRODUCTION || TESTING')) { + assert(reason instanceof Error || + (typeof reason === 'object' && reason !== null), + 'wrapReason: Expected "reason" to be a (possibly cloned) Error.'); + } + if (typeof reason !== 'object' || reason === null) { return reason; } switch (reason.name) {