v / vlib / time / time_js.js.v
32 lines · 27 sloc · 633 bytes · ac0ae1966ad3697e6d307e281e6902cb9fa1e753
Raw
1module time
2
3#var $timeOff = 0;
4#var $seen = 0
5#function $sys_mono_new_Date() {
6#var t = Date.now()
7#if (t < $seen)
8#$timeOff += ($seen - t)
9#
10#$seen = t
11#return t + $timeOff
12#}
13
14// sys_mono_now returns a *monotonically increasing time*, NOT a time adjusted for daylight savings, location etc.
15pub fn sys_mono_now() u64 {
16 $if js_browser {
17 mut res := u64(0)
18 #res = new u64(Math.floor(window.performance.now() * 1000000))
19
20 return res
21 } $else $if js_node {
22 mut res := u64(0)
23 #res.val = $process.hrtime.bigint()
24
25 return res
26 } $else {
27 mut res := u64(0)
28 #res = new u64($sys_mono_new_Date() * 1000000)
29
30 return res
31 }
32}
33