let response = ` self.onmessage = function(e) { importScripts('.../js/jsxcompressor.min.js'); let delta_t = new Date().getTime(); e.data.text = JXG.decompress(e.data.text); e.data.decompression_time = new Date().getTime() - delta_t; postMessage(e.data); }`; let blob = new_blob(response); window.URL = window.URL || window.webkitURL; let worker = new Worker(URL.createObjectURL(blob)); worker.onmessage = function(e) { wsa.parse_input(e.data); }; worker.postMessage(res); function new_blob(code) { let blob; try { blob = new Blob([code], {type: 'application/javascript'}); } catch (e) { // Backwards-compatibility window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder; blob = new BlobBuilder(); blob.append(code); blob = blob.getBlob(); } return blob; }