commit f3113db8dc6cd233dea4d11dd6db79e2fc99160f
Author: Havoc Pennington <hp@pobox.com>
Date:   Mon Jan 19 16:15:22 2009 -0500

    remove "useFrames" mode from Tweener
    
    the Tweener docs say don't use it, nobody is using it, and it complicates
    fixing up the frame ticker code to work the way it should.

diff --git a/modules/tweener/tweener.js b/modules/tweener/tweener.js
index 65e9e7e..4948995 100644
--- a/modules/tweener/tweener.js
+++ b/modules/tweener/tweener.js
@@ -45,7 +45,6 @@ var _engineExists = false;
 var _transitionList = null;
 var _tweenList = null;
 
-var _currentTimeFrame = 0;
 var _currentTime = 0;
 var _timeScale = 1;
 
@@ -139,7 +138,6 @@ function _startEngine() {
                                       _onEnterFrame);
     _ticker.start();
 
-    _currentTimeFrame = 0;
     _currentTime = 0;
 }
 
@@ -149,7 +147,6 @@ function _stopEngine() {
 
     _engineExists = false;
     _tweenList = false;
-    _currentTimeFrame = 0;
     _currentTime = 0;
 
     _ticker.disconnect(_prepareFrameId);
@@ -158,7 +155,7 @@ function _stopEngine() {
 }
 
 function _getCurrentTweeningTime(tweening) {
-    return tweening.useFrames ? _currentTimeFrame : _currentTime;
+    return _currentTime;
 }
 
 function _removeTweenByIndex(i) {
@@ -328,7 +325,6 @@ function _updateTweens() {
 
 /* Ran once every 'frame'. It's the main engine, updates all existing tweenings */
 function _onEnterFrame() {
-    _currentTimeFrame++;
     _currentTime += 1000/_ticker.FRAME_RATE;
 
     if (!_updateTweens())
@@ -472,21 +468,12 @@ function _addTweenOrCaller(target, tweeningParameters, isCaller) {
             }
         }
 
-        if (obj.useFrames == true) {
-            tween = new TweenList.TweenList(scopes[i],
-                                            _currentTimeFrame + (delay / _timeScale),
-                                            _currentTimeFrame + ((delay + time) / _timeScale),
-                                            true,
-                                            transition,
-                                            obj.transitionParams);
-        } else {
-            tween = new TweenList.TweenList(scopes[i],
-                                            _currentTime + ((delay * 1000) / _timeScale),
-                                            _currentTime + (((delay * 1000) + (time * 1000)) / _timeScale),
-                                            false,
-                                            transition,
-                                            obj.transitionParams);
-        }
+        tween = new TweenList.TweenList(scopes[i],
+                                        _currentTime + ((delay * 1000) / _timeScale),
+                                        _currentTime + (((delay * 1000) + (time * 1000)) / _timeScale),
+                                        false,
+                                        transition,
+                                        obj.transitionParams);
 
         tween.properties               =       isCaller ? null : copyProperties;
         tween.onStart                  =       obj.onStart;

commit e9b079210500b453db2973d948dd0a03d3e4caf5
Author: Havoc Pennington <hp@pobox.com>
Date:   Mon Jan 19 16:26:35 2009 -0500

    change tweener _currentTime variable to a getTime() method on the ticker object
    
    This virtualizes the time so a frame ticker can provide it.
    This patch is not intended to change any behaviors, just move code
    from hardcoded in tweener to virtualized in the default frame ticker
    object.

diff --git a/modules/tweener/tweener.js b/modules/tweener/tweener.js
index 4948995..55116bb 100644
--- a/modules/tweener/tweener.js
+++ b/modules/tweener/tweener.js
@@ -45,7 +45,6 @@ var _engineExists = false;
 var _transitionList = null;
 var _tweenList = null;
 
-var _currentTime = 0;
 var _timeScale = 1;
 
 /*
@@ -54,6 +53,7 @@ var _timeScale = 1;
  * property FRAME_RATE
  * start()
  * stop()
+ * getTime() gets time in milliseconds from start()
  * signal prepare-frame
  *
  */
@@ -73,10 +73,13 @@ FrameTicker.prototype = {
     },
 
     start : function() {
+        this._currentTime = 0;
+
         let me = this;
         this._timeoutID =
             Mainloop.timeout_add(Math.floor(1000 / 65),
                                  function() {
+                                     me._currentTime += 1000 / me.FRAME_RATE;
                                      me.emit('prepare-frame');
                                      return true;
                                  });
@@ -87,6 +90,12 @@ FrameTicker.prototype = {
             Mainloop.source_remove(this._timeoutID);
             delete this._timeoutID;
         }
+
+        this._currentTime = 0;
+    },
+
+    getTime : function() {
+        return this._currentTime;
     }
 };
 Signals.addSignalMethods(FrameTicker.prototype);
@@ -137,8 +146,6 @@ function _startEngine() {
     _prepareFrameId = _ticker.connect('prepare-frame',
                                       _onEnterFrame);
     _ticker.start();
-
-    _currentTime = 0;
 }
 
 function _stopEngine() {
@@ -147,7 +154,6 @@ function _stopEngine() {
 
     _engineExists = false;
     _tweenList = false;
-    _currentTime = 0;
 
     _ticker.disconnect(_prepareFrameId);
     _prepareFrameId = 0;
@@ -155,7 +161,7 @@ function _stopEngine() {
 }
 
 function _getCurrentTweeningTime(tweening) {
-    return _currentTime;
+    return _ticker.getTime();
 }
 
 function _removeTweenByIndex(i) {
@@ -325,8 +331,6 @@ function _updateTweens() {
 
 /* Ran once every 'frame'. It's the main engine, updates all existing tweenings */
 function _onEnterFrame() {
-    _currentTime += 1000/_ticker.FRAME_RATE;
-
     if (!_updateTweens())
         _stopEngine();
 
@@ -469,8 +473,8 @@ function _addTweenOrCaller(target, tweeningParameters, isCaller) {
         }
 
         tween = new TweenList.TweenList(scopes[i],
-                                        _currentTime + ((delay * 1000) / _timeScale),
-                                        _currentTime + (((delay * 1000) + (time * 1000)) / _timeScale),
+                                        _ticker.getTime() + ((delay * 1000) / _timeScale),
+                                        _ticker.getTime() + (((delay * 1000) + (time * 1000)) / _timeScale),
                                         false,
                                         transition,
                                         obj.transitionParams);
