From 200f2e5e105b027011d5a5bb22c24bef4c076790 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Tue, 5 Apr 2016 14:31:00 -0500 Subject: [PATCH] chore(): use native raf/setTimeout --- ionic/util/dom.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ionic/util/dom.ts b/ionic/util/dom.ts index 4d0dd3540e..ab00a3e712 100644 --- a/ionic/util/dom.ts +++ b/ionic/util/dom.ts @@ -24,9 +24,12 @@ } })(); -export const raf = window.requestAnimationFrame.bind(window); +// use native raf rather than the zone wrapped one +export const raf = (window[window['Zone']['__symbol__']('requestAnimationFrame')] || window[window['Zone']['__symbol__']('webkitRequestAnimationFrame')])['bind'](window); export const cancelRaf = window.cancelAnimationFrame.bind(window); +export const nativeTimeout = window[window['Zone']['__symbol__']('setTimeout')]['bind'](window); +export const clearNativeTimeout = window[window['Zone']['__symbol__']('clearTimeout')]['bind'](window); export function rafFrames(framesToWait, callback) { framesToWait = Math.ceil(framesToWait); @@ -35,9 +38,9 @@ export function rafFrames(framesToWait, callback) { raf(callback); } else { - setTimeout(() => { + nativeTimeout(() => { raf(callback); - }, (framesToWait - 1) * 17); + }, (framesToWait - 1) * 16.6667); } }