pre.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const searchParams = new URLSearchParams(window.location.search);
  2. Module.preRun = () => {
  3. };
  4. const arguments = [];
  5. for (let i = 1; true; i++) {
  6. const arg_i = searchParams.get(`arg_${i}`);
  7. if (arg_i == null) {
  8. break;
  9. }
  10. arguments.push(arg_i);
  11. }
  12. Module.arguments = arguments;
  13. if (searchParams.get("loghtml") === "1") {
  14. const divTerm = document.createElement("div");
  15. divTerm.id = "terminal";
  16. document.body.append(divTerm);
  17. function printToStdOut(msg, id) {
  18. const divMsg = document.createElement("div", {class: "stdout"});
  19. divMsg.id = id;
  20. divMsg.append(document.createTextNode(msg));
  21. divTerm.append(divMsg);
  22. return divMsg;
  23. }
  24. Module.print = (msg) => {
  25. console.log(msg);
  26. printToStdOut(msg, "stdout");
  27. }
  28. Module.printErr = (msg) => {
  29. console.error(msg);
  30. const e = printToStdOut(msg, "stderr");
  31. e.style = "color:red";
  32. }
  33. const divQuit = document.createElement("div");
  34. divQuit.id = "process-quit";
  35. document.body.append(divQuit);
  36. Module.quit = (msg) => {
  37. divQuit.innerText = msg;
  38. console.log(`QUIT: ${msg}`)
  39. }
  40. Module.onabort = (msg) => {
  41. printToStdOut(`ABORT: ${msg}`, "stderr");
  42. console.log(`ABORT: ${msg}`);
  43. }
  44. }