The source code

    /**
     * @ignore
     *  single timer for the whole anim module
     * @author yiminghe@gmail.com
     */
    KISSY.add('anim/manager', function (S) {
        var stamp = S.stamp;

        return {
            // note in background tab, interval is set to 1s in chrome/firefox
            // no interval change in ie for 15, if interval is less than 15
            // then in background tab interval is changed to 15
            interval: 15,
            runnings: {},
            timer: null,
            start: function (anim) {
                var self = this,
                    kv = stamp(anim);
                if (self.runnings[kv]) {
                    return;
                }
                self.runnings[kv] = anim;
                self.startTimer();
            },
            stop: function (anim) {
                this.notRun(anim);
            },
            notRun: function (anim) {
                var self = this,
                    kv = stamp(anim);
                delete self.runnings[kv];
                if (S.isEmptyObject(self.runnings)) {
                    self.stopTimer();
                }
            },
            pause: function (anim) {
                this.notRun(anim);
            },
            resume: function (anim) {
                this.start(anim);
            },
            startTimer: function () {
                var self = this;
                if (!self.timer) {
                    self.timer = setTimeout(function () {
                        if (!self.runFrames()) {
                            self.timer = 0;
                            self.startTimer();
                        } else {
                            self.stopTimer();
                        }
                    }, self.interval);
                }
            },
            stopTimer: function () {
                var self = this,
                    t = self.timer;
                if (t) {
                    clearTimeout(t);
                    self.timer = 0;
                }
            },
            runFrames: function () {
                var self = this,
                    done = 1,
                    r,
                    runnings = self.runnings;
                for (r in runnings) {
                    done = 0;
                    runnings[r]._frame();
                }
                return done;
            }
        };
    });
    /**
     * @ignore
     *
     * !TODO: deal with https://developers.google.com/chrome/whitepapers/pagevisibility
     */