rem: if(dojo.isFunction(prop.start)){ 
add: if(d.isFunction(prop.start)){ 
context: 		dojo.connect(anim, "beforeBegin", anim, function(){			var pm = {};			for(var p in this.properties){				// Make shallow copy of properties into pm because we overwrite some values below.				// In particular if start/end are functions we don't want to overwrite them or				// the functions won't be called if the animation is reused.				var prop = (pm[p] = dojo.mixin({}, this.properties[p]));				if(dojo.isFunction(prop.start)){					prop.start = prop.start();				}				if(dojo.isFunction(prop.end)){					prop.end = prop.end();				}				var isColor = (p.toLowerCase().indexOf("color") >= 0);				function getStyle(node, p){					// dojo.style(node, "height") can return "auto" or "" on IE; this is more reliable:					var v = ({height: node.offsetHeight, width: node.offsetWidth})[p];					if(v !== undefined){ return v; }					v = dojo.style(node, p);					return (p=="opacity") ? Number(v) : parseFloat(v);				}				if(!("end" in prop)){					prop.end = getStyle(this.node, p);				}else if(!("start" in prop)){					prop.start = getStyle(this.node, p);				}				if(isColor){					// console.debug("it's a color!");					prop.start = new dojo.Color(prop.start);					prop.end = new dojo.Color(prop.end);				}else{					prop.start = (p == "opacity") ? Number(prop.start) : parseFloat(prop.start);				}				// console.debug("start:", prop.start);				// console.debug("end:", prop.end);			}			this.curve = new PropLine(pm);		});
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/a68d9b151191f06f52ca95d3f1ce351f242146ce/fx.js/clean/_base/fx.js