From 5f00b1c9d9315e1608b599128142304a1aa02530 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 22 Nov 2014 14:12:01 +0000 Subject: [PATCH 1/2] update request-animation-frame polyfill and add fallback fn --- src/clojure/freactive/dom.cljs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/clojure/freactive/dom.cljs b/src/clojure/freactive/dom.cljs index 6210546..90509b3 100644 --- a/src/clojure/freactive/dom.cljs +++ b/src/clojure/freactive/dom.cljs @@ -171,8 +171,19 @@ ;; ## Polyfills -(defn request-animation-frame [f] - (.requestAnimationFrame js/window f)) +(def ^:private raf-start-time (.getTime (js/Date.))) + +(def request-animation-frame + (or + (.-requestAnimationFrame js/window) + (.-webkitRequestAnimationFrame js/window) + (.-mozRequestAnimationFrame js/window) + (.-msRequestAnimationFrame js/window) + (.-oRequestAnimationFrame js/window) + (fn [f] + (js/setTimeout + #(f (- (.getTime (js/Date.)) raf-start-time)) + 16.66666)))) ;; Render Loop From d6d20eaa97b26de17c900d1e18c5c2e80d49b713 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 22 Nov 2014 14:20:52 +0000 Subject: [PATCH 2/2] update request-animation-frame, refactor raf-start-time as local binding --- src/clojure/freactive/dom.cljs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/clojure/freactive/dom.cljs b/src/clojure/freactive/dom.cljs index 90509b3..26ee940 100644 --- a/src/clojure/freactive/dom.cljs +++ b/src/clojure/freactive/dom.cljs @@ -171,8 +171,6 @@ ;; ## Polyfills -(def ^:private raf-start-time (.getTime (js/Date.))) - (def request-animation-frame (or (.-requestAnimationFrame js/window) @@ -180,10 +178,11 @@ (.-mozRequestAnimationFrame js/window) (.-msRequestAnimationFrame js/window) (.-oRequestAnimationFrame js/window) - (fn [f] - (js/setTimeout - #(f (- (.getTime (js/Date.)) raf-start-time)) - 16.66666)))) + (let [t0 (.getTime (js/Date.))] + (fn [f] + (js/setTimeout + #(f (- (.getTime (js/Date.)) t0)) + 16.66666))))) ;; Render Loop