mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +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": [] }]);
 |