diff --git a/src/lzma.js b/src/lzma.js index 9a61bef..fdcda38 100644 --- a/src/lzma.js +++ b/src/lzma.js @@ -96,7 +96,7 @@ if (typeof Worker === "undefined" || (typeof location !== "undefined" && locatio } } else { if (callback_obj[e.data.cbn] && typeof callback_obj[e.data.cbn].on_finish === "function") { - callback_obj[e.data.cbn].on_finish(e.data.result, e.data.error); + callback_obj[e.data.cbn].on_finish(e.data.result, e.data.error && new Error(e.data.error)); /// Since the (de)compression is complete, the callbacks are no longer needed. delete callback_obj[e.data.cbn]; diff --git a/src/lzma_worker.js b/src/lzma_worker.js index d8acf43..d6215df 100644 --- a/src/lzma_worker.js +++ b/src/lzma_worker.js @@ -2465,11 +2465,13 @@ var LZMA = (function () { if (typeof cbn == "undefined") return; + if (err) try { console.error(err); } catch(e) {} + return postMessage({ action: action_compress, cbn: cbn, result: res, - error: err + error: err && err.message }); }; @@ -2542,11 +2544,13 @@ var LZMA = (function () { if (typeof cbn == "undefined") return; + if (err) try { console.error(err); } catch(e) {} + return postMessage({ action: action_decompress, cbn: cbn, result: res, - error: err + error: err && err.message }); }; diff --git a/test/test-browser-lzma_js.html b/test/test-browser-lzma_js.html new file mode 100644 index 0000000..1bf4db4 --- /dev/null +++ b/test/test-browser-lzma_js.html @@ -0,0 +1,182 @@ + + + + + + + + + + + +
+ + + + + +