From 7fd94e4a988cfbd707447c9a2b3ed9a0d4a8e3c0 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Fri, 2 Mar 2018 20:16:25 -0600 Subject: [PATCH] worker handleMessage() --- src/worker/workermain.js | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/worker/workermain.js b/src/worker/workermain.js index 8573ef1a..7e314a6b 100644 --- a/src/worker/workermain.js +++ b/src/worker/workermain.js @@ -1301,22 +1301,32 @@ var TOOL_PRELOADFS = { 'sdcc': 'sdcc', } -onmessage = function(e) { - // (preload) - if (e.data.preload) { - var fs = TOOL_PRELOADFS[e.data.preload]; +function handleMessage(data) { + if (data.preload) { + var fs = TOOL_PRELOADFS[data.preload]; if (fs && !fsMeta[fs]) loadFilesystem(fs); return; } // (code,platform,tool) - var code = e.data.code; - var platform = e.data.platform; - var toolfn = TOOLS[e.data.tool]; - if (!toolfn) throw "no tool named " + e.data.tool; - var dependencies = e.data.dependencies; - var result = toolfn(code, platform, e.data); + var code = data.code; + var platform = data.platform; + var toolfn = TOOLS[data.tool]; + if (!toolfn) throw "no tool named " + data.tool; + var dependencies = data.dependencies; + var result = toolfn(code, platform, data); result.params = PLATFORM_PARAMS[platform]; - if (result) { - postMessage(result); + return result; +} + +var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function'; +var ENVIRONMENT_IS_WEB = typeof window === 'object'; +var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; + +if (ENVIRONMENT_IS_WORKER) { + onmessage = function(e) { + var result = handleMessage(e.data); + if (result) { + postMessage(result); + } } }