time_js.odin 572 B

123456789101112131415161718192021222324252627282930313233
  1. //+private
  2. //+build js
  3. package time
  4. foreign import "odin_env"
  5. _IS_SUPPORTED :: true
  6. _now :: proc "contextless" () -> Time {
  7. foreign odin_env {
  8. time_now :: proc "contextless" () -> i64 ---
  9. }
  10. return Time{time_now()*1e6}
  11. }
  12. _sleep :: proc "contextless" (d: Duration) {
  13. foreign odin_env {
  14. time_sleep :: proc "contextless" (ms: u32) ---
  15. }
  16. if d > 0 {
  17. time_sleep(u32(d/1e6))
  18. }
  19. }
  20. _tick_now :: proc "contextless" () -> Tick {
  21. foreign odin_env {
  22. tick_now :: proc "contextless" () -> i64 ---
  23. }
  24. return Tick{tick_now()*1e6}
  25. }
  26. _yield :: proc "contextless" () {
  27. }