forked from piglovesyou/seletakam
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.coffee
49 lines (44 loc) · 843 Bytes
/
main.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Date.now = Date.now or -> (new Date).getTime()
defer = (args...) ->
times = args.length - 1
i = 0
(defer_ = ( ->
args[i]()
if ++i < times
setTimeout(defer_, 0)
else
args[args.length - 1]()
))()
timediff = ( ->
t = -1
d = 0
return {
start: ->
t = Date.now()
stop : ->
throw new Error('umm..') if t is -1
d = Date.now() - t
t = -1
d
}
)()
main = ( ->
j = 0
times = 10
diff = []
(_main = ->
defer(->
document.body.style.display = 'none'
timediff.start()
, ->
document.body.style.display = 'block'
, ->
diff.push timediff.stop()
_main() if ++j < times
, ->
if diff.length >= times
result = Math.round(diff.reduce((a, b) -> (a + b) / 2))
alert "avarage: #{result} ms"
)
)()
)()