asdf
This commit is contained in:
parent
ed6976fe35
commit
d52faeff41
23
pkg/ludus.js
23
pkg/ludus.js
|
@ -1,4 +1,4 @@
|
||||||
if (window) window.ludus = {run, kill, flush_stdout, stdout, p5, svg, flush_commands, commands, result, input, is_running, key_down, key_up, is_starting_up}
|
if (window) window.ludus = {run, kill, flush_stdout, stdout, p5, svg, flush_commands, commands, result, flush_result, input, is_running, key_down, key_up, is_starting_up}
|
||||||
|
|
||||||
const worker_url = new URL("worker.js", import.meta.url)
|
const worker_url = new URL("worker.js", import.meta.url)
|
||||||
const worker = new Worker(worker_url, {type: "module"})
|
const worker = new Worker(worker_url, {type: "module"})
|
||||||
|
@ -13,6 +13,18 @@ let ready = false
|
||||||
let io_interval_id = null
|
let io_interval_id = null
|
||||||
let keys_down = new Set();
|
let keys_down = new Set();
|
||||||
|
|
||||||
|
function reset_ludus () {
|
||||||
|
outbox = []
|
||||||
|
ludus_console = ""
|
||||||
|
ludus_commands = []
|
||||||
|
ludus_result = null
|
||||||
|
code = null
|
||||||
|
running = false
|
||||||
|
ready = false
|
||||||
|
io_interval_id = null
|
||||||
|
keys_down = new Set()
|
||||||
|
}
|
||||||
|
|
||||||
worker.onmessage = handle_messages
|
worker.onmessage = handle_messages
|
||||||
|
|
||||||
async function handle_messages (e) {
|
async function handle_messages (e) {
|
||||||
|
@ -44,8 +56,8 @@ async function handle_messages (e) {
|
||||||
// TODO: do more than report these
|
// TODO: do more than report these
|
||||||
case "Console": {
|
case "Console": {
|
||||||
let new_lines = msg.data.join("\n");
|
let new_lines = msg.data.join("\n");
|
||||||
console.log("Main: ludus says => ", new_lines)
|
|
||||||
ludus_console = ludus_console + new_lines
|
ludus_console = ludus_console + new_lines
|
||||||
|
console.log("Main: ludus says => ", new_lines)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case "Commands": {
|
case "Commands": {
|
||||||
|
@ -96,13 +108,8 @@ export function run (source) {
|
||||||
if (running || ready) {
|
if (running || ready) {
|
||||||
return "TODO: handle this? should not be running"
|
return "TODO: handle this? should not be running"
|
||||||
}
|
}
|
||||||
running = true
|
|
||||||
ready = false
|
|
||||||
result = null
|
|
||||||
keys_down = new Set()
|
|
||||||
code = source
|
|
||||||
worker.postMessage([{verb: "Run", data: source}])
|
worker.postMessage([{verb: "Run", data: source}])
|
||||||
outbox = []
|
reset_ludus()
|
||||||
start_io_polling()
|
start_io_polling()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user