mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var Module = {};
 | 
						|
var verbose_mode = false;
 | 
						|
var text_buffer = "";
 | 
						|
 | 
						|
Module["printErr"] = Module["print"] = function(text) {
 | 
						|
	if (verbose_mode)
 | 
						|
		console.log(text);
 | 
						|
	text_buffer += text + "\n";
 | 
						|
}
 | 
						|
 | 
						|
importScripts('yosys.js');
 | 
						|
 | 
						|
onmessage = function(e) {
 | 
						|
	var request = e.data[0];
 | 
						|
	var response = { "idx": request.idx, "args": [] };
 | 
						|
 | 
						|
	if (request.mode == "run") {
 | 
						|
		response["errmsg"] = "";
 | 
						|
		try {
 | 
						|
			text_buffer = "";
 | 
						|
			Module.ccall('run', '', ['string'], [request.cmd]);
 | 
						|
		} catch (e) {
 | 
						|
			response.errmsg = Module.ccall('errmsg', 'string', [], []);
 | 
						|
		}
 | 
						|
		response.args.push(text_buffer);
 | 
						|
		response.args.push(response.errmsg);
 | 
						|
		text_buffer = "";
 | 
						|
	}
 | 
						|
 | 
						|
	if (request.mode == "read_file") {
 | 
						|
		try {
 | 
						|
			response.args.push(FS.readFile(request.filename, {encoding: 'utf8'}));
 | 
						|
		} catch (e) { }
 | 
						|
	}
 | 
						|
 | 
						|
	if (request.mode == "write_file") {
 | 
						|
		try {
 | 
						|
			FS.writeFile(request.filename, request.text, {encoding: 'utf8'});
 | 
						|
		} catch (e) { }
 | 
						|
	}
 | 
						|
 | 
						|
	if (request.mode == "read_dir") {
 | 
						|
		try {
 | 
						|
			response.args.push(FS.readdir(request.dirname));
 | 
						|
		} catch (e) { }
 | 
						|
	}
 | 
						|
 | 
						|
	if (request.mode == "remove_file") {
 | 
						|
		try {
 | 
						|
			FS.unlink(request.filename);
 | 
						|
		} catch (e) { }
 | 
						|
	}
 | 
						|
 | 
						|
	if (request.mode == "verbose") {
 | 
						|
		if (request.value)
 | 
						|
			console.log(text_buffer);
 | 
						|
		verbose_mode = request.value;
 | 
						|
	}
 | 
						|
 | 
						|
	postMessage([response]);
 | 
						|
}
 | 
						|
 | 
						|
postMessage([{ "idx": 0, "args": [] }]);
 |