diff --git a/src/core/lib/Magic.mjs b/src/core/lib/Magic.mjs index d1086dfc..61e113b3 100644 --- a/src/core/lib/Magic.mjs +++ b/src/core/lib/Magic.mjs @@ -229,17 +229,22 @@ class Magic { const testEnc = async op => { for (let i = 0; i < encodings.length; i++) { const conf = { - op: op, - args: [encodings[i]] - }, - data = await this._runRecipe([conf], sample.buffer); + op: op, + args: [encodings[i]] + }; - // Only add to the results if it changed the data - if (!_buffersEqual(data, sample.buffer)) { - results.push({ - data: data, - conf: conf - }); + try { + const data = await this._runRecipe([conf], sample.buffer); + + // Only add to the results if it changed the data + if (!_buffersEqual(data, sample.buffer)) { + results.push({ + data: data, + conf: conf + }); + } + } catch (err) { + continue; } } }; @@ -361,8 +366,9 @@ class Magic { * @returns {ArrayBuffer} */ async _runRecipe(recipeConfig, input=this.inputBuffer) { + input = input instanceof ArrayBuffer ? input : input.buffer; const dish = new Dish(); - dish.set(input.buffer, Dish.ARRAY_BUFFER); + dish.set(input, Dish.ARRAY_BUFFER); if (ENVIRONMENT_IS_WORKER()) self.loadRequiredModules(recipeConfig);