code: function ( time, deltaTime, timeDirection, accuIndex ) {
  
  		// called by the mixer
  
  		if ( ! this.enabled ) {
  
  			// call ._updateWeight() to update ._effectiveWeight
  
  			this._updateWeight( time );
  			return;
  
  		}
  
  		var startTime = this._startTime;
  
  		if ( startTime !== null ) {
  
  			// check for scheduled start of action
  
  			var timeRunning = ( time - startTime ) * timeDirection;
  			if ( timeRunning < 0 || timeDirection === 0 ) {
  
  				return; // yet to come / don't decide when delta = 0
  
  			}
  
  			// start
  
  			this._startTime = null; // unschedule
  			deltaTime = timeDirection * timeRunning;
  
  		}
  
  		// apply time scale and advance time
  
  		deltaTime *= this._updateTimeScale( time );
  		var clipTime = this._updateTime( deltaTime );
  
  		// note: _updateTime may disable the action resulting in
  		// an effective weight of 0
  
  		var weight = this._updateWeight( time );
  
  		if ( weight > 0 ) {
  
  			var interpolants = this._interpolants;
  			var propertyMixers = this._propertyBindings;
  
  			for ( var j = 0, m = interpolants.length; j !== m; ++ j ) {
  
  				interpolants[ j ].evaluate( clipTime );
  				propertyMixers[ j ].accumulate( accuIndex, weight );
  
  			}
  
  		}
  
  	}
docs: Interna