code: function () {
  		var bones = this.bones;
  		var updateCache = this.cache;
  		var ikConstraints = this.ikConstraints;
  		var transformConstraints = this.transformConstraints;
  		var ikConstraintsCount = ikConstraints.length;
  		var transformConstraintsCount = transformConstraints.length;
  		updateCache.length = 0;
  
  		for (var i = 0, n = bones.length; i < n; i++) {
  			var bone = bones[i];
  			updateCache[updateCache.length] = bone;
  			for (var ii = 0; ii < ikConstraintsCount; ii++) {
  				var ikConstraint = ikConstraints[ii];
  				if (bone == ikConstraint.bones[ikConstraint.bones.length - 1]) {
  					updateCache[updateCache.length] = ikConstraint;
  					break;
  				}
  			}
  		}
  
  		for (var i = 0; i < transformConstraintsCount; i++) {
  			var transformConstraint = transformConstraints[i];
  			for (var ii = updateCache.length - 1; ii >= 0; ii--) {
  				var object = updateCache[ii];
  				if (object == transformConstraint.bone || object == transformConstraint.target) {
  					updateCache.splice(ii + 1, 0, transformConstraint);
  					break;
  				}
  			}
  		}
  	}
docs: Caches information about bones and constraints. Must be called if bones or constraints are added or removed.