tjspromise1a.pp 470 B

12345678910111213141516171819202122232425262728293031323334
  1. { %cpu=wasm32 }
  2. { %norun }
  3. library tjspromise1a;
  4. var
  5. state: double;
  6. function init_state: double; external 'js';
  7. function compute_delta: double; external 'js' suspending first;
  8. procedure init;
  9. begin
  10. state := init_state;
  11. end;
  12. function get_state: double;
  13. begin
  14. get_state := state;
  15. end;
  16. function update_state: double;
  17. begin
  18. state := state + compute_delta;
  19. update_state := state;
  20. end;
  21. exports
  22. get_state,
  23. update_state promising first;
  24. begin
  25. init;
  26. end.