connect wasm to monaco

This commit is contained in:
Alexander Bentkamp
2023-11-10 20:25:25 +01:00
parent 11dde6aad9
commit 3d79c4ea60
7 changed files with 1005 additions and 17 deletions
+21 -6
View File
@@ -67,7 +67,17 @@ return false;
var stdoutBuffer = ""
var stderrBuffer = ""
var messageBuffer = []
var initialized = false;
function flushMessageBuffer(){
if (initialized) {
while(messageBuffer.length > 0) {
var msg = messageBuffer.shift();
Module.ccall('send_message', 'void', ['string'], [msg]);
}
}
}
var Module = {
"arguments": ["--worker"],
@@ -90,14 +100,22 @@ var Module = {
}
FS.init(stdin, stdout, stderr);
}]
}],
"noInitialRun": true,
"onRuntimeInitialized": () => {
Module.ccall('main', 'number', [], []);
initialized = true;
flushMessageBuffer();
}
};
importScripts("server.js")
onmessage = (ev) => {
IO.putLine(ev.data)
messageBuffer.push(ev.data);
flushMessageBuffer();
}
IO.listenPutStr(message => {
@@ -116,8 +134,5 @@ setInterval(() => {
}, 1000)
setTimeout(() =>{
Module.ccall('send_message', // name of C function
'void', // return type
['string'], // argument types
['Hi there!']); // arguments
},2000)