2021-08-11 09:22:53 +03:00
|
|
|
module time
|
|
|
|
|
|
|
|
#var $timeOff = 0;
|
|
|
|
#var $seen = 0
|
|
|
|
#function $sys_mono_new_Date() {
|
|
|
|
#var t = Date.now()
|
2021-10-15 09:22:15 +03:00
|
|
|
#if (t < $seen)
|
|
|
|
#$timeOff += ($seen - t)
|
2021-08-11 09:22:53 +03:00
|
|
|
#
|
2021-10-15 09:22:15 +03:00
|
|
|
#$seen = t
|
|
|
|
#return t + $timeOff
|
2021-08-11 09:22:53 +03:00
|
|
|
#}
|
|
|
|
|
2023-07-22 21:30:36 +03:00
|
|
|
// sys_mono_now returns a *monotonically increasing time*, NOT a time adjusted for daylight savings, location etc.
|
2021-08-11 09:22:53 +03:00
|
|
|
pub fn sys_mono_now() u64 {
|
|
|
|
$if js_browser {
|
|
|
|
mut res := u64(0)
|
2021-12-22 13:26:52 +03:00
|
|
|
#res = new u64(Math.floor(window.performance.now() * 1000000))
|
2021-08-11 09:22:53 +03:00
|
|
|
|
|
|
|
return res
|
|
|
|
} $else $if js_node {
|
|
|
|
mut res := u64(0)
|
2021-10-15 09:22:15 +03:00
|
|
|
#res.val = $process.hrtime.bigint()
|
2021-08-11 09:22:53 +03:00
|
|
|
|
|
|
|
return res
|
|
|
|
} $else {
|
|
|
|
mut res := u64(0)
|
|
|
|
#res = new u64($sys_mono_new_Date() * 1000000)
|
|
|
|
|
|
|
|
return res
|
|
|
|
}
|
|
|
|
}
|