智慧水务管理系统 - 精河县供水工程综合管理平台

wasi_trace.js 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Usage:
  2. // 1. import { wasi_trace } from './wasi_trace.js';
  3. // 2. Pass wasi_trace as an import object to WebAssembly.instantiate
  4. // 3. Call wasi_trace.init(instance) after instantiation
  5. var instance;
  6. var wasi_snapshot_preview1 = {
  7. fd_close: function () {
  8. return 8;
  9. },
  10. fd_seek: function () {
  11. return 8;
  12. },
  13. fd_fdstat_get: function (fd, stat) {
  14. // needed for isatty() to enable line buffering for stdout
  15. var heap = new DataView(instance.exports.memory.buffer);
  16. heap.setUint8(stat, 2);
  17. for (var i = 1; i < 24; ++i) heap.setUint8(stat + i, 0);
  18. return 0;
  19. },
  20. fd_write: function (fd, iovs, iovs_len, nwritten) {
  21. var heap = new DataView(instance.exports.memory.buffer);
  22. var written = 0;
  23. var str = '';
  24. for (var i = 0; i < iovs_len; ++i) {
  25. var buf = heap.getUint32(iovs + 8 * i + 0, true);
  26. var buf_len = heap.getUint32(iovs + 8 * i + 4, true);
  27. var buf_data = new Uint8Array(heap.buffer, buf, buf_len);
  28. for (var j = 0; j < buf_data.length; ++j) {
  29. str += String.fromCharCode(buf_data[j]);
  30. }
  31. written += buf_len;
  32. }
  33. console.log(str);
  34. heap.setUint32(nwritten, written, true);
  35. return 0;
  36. },
  37. };
  38. var wasi_trace = {
  39. wasi_snapshot_preview1,
  40. init: function (inst) {
  41. instance = inst;
  42. },
  43. };
  44. export { wasi_trace };