var version = function() { return '(loading)'; }
var compileJSON = function() { return ''; }
var missingInputs = [];
addEventListener('message', function(e) {
	var data = e.data;
	switch (data.cmd) {
		case 'loadVersion':
			delete Module;
			version = null;
			compileJSON = null;

			importScripts(data.data);
			version = Module.cwrap("version", "string", []);
			if ('_compileJSONCallback' in Module)
			{
				compileJSONInternal = Module.cwrap("compileJSONCallback", "string", ["string", "number", "number"]);
				var missingInputCallback = Module.Runtime.addFunction(function(path) {
					missingInputs.push(Module.Pointer_stringify(path));
				});
				compileJSON = function(input, optimize) {
					return compileJSONInternal(input, optimize, missingInputCallback);
				};
			}
			else if ('_compileJSONMulti' in Module)
				compileJSON = Module.cwrap("compileJSONMulti", "string", ["string", "number"]);
			else
				compileJSON = Module.cwrap("compileJSON", "string", ["string", "number"]);
			postMessage({
				cmd: 'versionLoaded',
				data: version(),
				acceptsMultipleFiles: ('_compileJSONMulti' in Module)
			});
			break;
		case 'compile':
                        missingInputs.length = 0;
			postMessage({cmd: 'compiled', data: compileJSON(data.source, data.optimize)}, missingInputs: missingInputs);
			break;
	}
}, false);

var version = function() { return '(loading)'; }
var compileJSON = function() { return ''; }
var missingInputs = [];
addEventListener('message', function(e) {
	var data = e.data;
	switch (data.cmd) {
		case 'loadVersion':
			delete Module;
			version = null;
			compileJSON = null;

			importScripts(data.data);
			version = Module.cwrap("version", "string", []);
			if ('_compileJSONCallback' in Module)
			{
				compileJSONInternal = Module.cwrap("compileJSONCallback", "string", ["string", "number", "number"]);
				var missingInputCallback = Module.Runtime.addFunction(function(path) {
					missingInputs.push(Module.Pointer_stringify(path));
				});
				compileJSON = function(input, optimize) {
					return compileJSONInternal(input, optimize, missingInputCallback);
				};
			}
			else if ('_compileJSONMulti' in Module)
				compileJSON = Module.cwrap("compileJSONMulti", "string", ["string", "number"]);
			else
				compileJSON = Module.cwrap("compileJSON", "string", ["string", "number"]);
			postMessage({
				cmd: 'versionLoaded',
				data: version(),
				acceptsMultipleFiles: ('_compileJSONMulti' in Module)
			});
			break;
		case 'compile':
			missingInputs.length = 0;
			postMessage({cmd: 'compiled', data: compileJSON(data.source, data.optimize), missingInputs: missingInputs});
			break;
	}
}, false);

Fix again.