@@ -8,45 +8,41 @@ import Maybe
88
99 function timeNow() { return (new window.Date).getTime(); }
1010
11− function fpsWhen(desiredFPS) { return function (isOn) {
12− var msPerFrame = 1000 / desiredFPS;
13− var prev = timeNow(), curr = prev, diff = 0, wasOn = true;
14− var ticker = Elm.Signal.constant(diff);
15− function tick(zero) { return function() {
16− curr = timeNow();
17− diff = zero ? 0 : curr - prev;
18− prev = curr;
19− Dispatcher.notify(ticker.id, diff);
20− };
21− }
22− var timeoutID = 0;
23− function f(isOn) { return function(t) {
24− if (isOn) {
25− timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
26− } else if (wasOn) {
27− clearTimeout(timeoutID);
28− }
29− wasOn = isOn;
30− return t;
31− };
11+ function fpsWhen(desiredFPS, isOn) {
12+ var msPerFrame = 1000 / desiredFPS;
13+ var prev = timeNow(), curr = prev, diff = 0, wasOn = true;
14+ var ticker = Elm.Signal.constant(diff);
15+ function tick(zero) { return function() {
16+ curr = timeNow();
17+ diff = zero ? 0 : curr - prev;
18+ prev = curr;
19+ Dispatcher.notify(ticker.id, diff);
20+ };
21+ }
22+ var timeoutID = 0;
23+ function f(isOn, t) {
24+ if (isOn) {
25+ timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
26+ } else if (wasOn) {
27+ clearTimeout(timeoutID);
3228 }
33− return Elm.Signal.lift2(f)(isOn)(ticker);
34− };
29+ wasOn = isOn;
30+ return t;
31+ }
32+ return Elm.Signal.lift2(F2(f))(isOn)(ticker);
3533 }
3634
37− function everyWhen(isOn) { return function(t) {
38− var clock = Elm.Signal.constant(timeNow());
39− function tellTime() { Dispatcher.notify(clock.id, timeNow()); }
40− setInterval(tellTime, t);
41− return clock;
42− };
35+ function everyWhen(t, isOn) {
36+ var clock = Elm.Signal.constant(timeNow());
37+ function tellTime() { Dispatcher.notify(clock.id, timeNow()); }
38+ setInterval(tellTime, t);
39+ return clock;
4340 }
4441
45− function since(t) { return function(s) {
46− function cmp(a) { return function(b) { return !Value.eq(a,b); }; }
47− var dcount = Elm.Signal.count(Elm.Signal.delay(t)(s));
48− return Elm.Signal.lift2(cmp)(Elm.Signal.count(s))(dcount);
49− };
42+ function since(t, s) {
43+ function cmp(a,b) { return !Value.eq(a,b) }
44+ var dcount = Elm.Signal.count(Elm.Signal.delay(t)(s));
45+ return Elm.Signal.lift2(F2(cmp))(Elm.Signal.count(s))(dcount);
5046 }
5147 function after(t) {
5248 t *= 1000;
@@ -65,11 +61,11 @@ import Maybe
6561 return isNaN(t) ? Elm.Maybe.Nothing : Elm.Maybe.Just(t);
6662 }
6763 Elm.Native.Time = {
68− fpsWhen : fpsWhen,
69− fps : function(t) { return fpsWhen(t)(Elm.Signal.constant(true)); },
70− every : everyWhen(Elm.Signal.constant(true)),
64+ fpsWhen : F2(fpsWhen),
65+ fps : function(t) { return fpsWhen(t, Elm.Signal.constant(true)); },
66+ every : function(t) { return everyWhen(t, Elm.Signal.constant(true)) },
7167 delay : Elm.Signal.delay,
72− since : since,
68+ since : F2(since),
7369 after : after,
7470 before : before,
7571 toDate : function(t) { return new window.Date(t); },