 				const stack:Array = []; // used as a queue of function calls
 				var call:CompiledFunctionCall;
 				var subCall:CompiledFunctionCall;
-				var constant:CompiledConstant;
 				var compiledParams:Array;
 				var method:Object;
 				var result:*;

					{
						// implemented as "(init, cond) && while((inc, cond) && (stmt, true))" with first evaluation of "(inc, cond)" skipped
						
						var _for:CompiledConstant = new CompiledConstant(ST_FOR, operators['&&']);
						var _init:ICompiledObject = forParams.compiledParams[0];
						var _cond:ICompiledObject = forParams.compiledParams[1];
						var _inc:ICompiledObject = forParams.compiledParams[2];

					
					method = call.evaluatedMethod;
					compiledParams = call.compiledParams;
					
					if (compiledParams)
					{
						if (LOOP_LOOKUP[method] && call.evalIndex == INDEX_METHOD)
						{
							if (method == operators[ST_DO] || method == operators[ST_FOR_DO])
							{
								// skip first evaluation of loop condition
								call.evaluatedParams[INDEX_CONDITION] = true;
								call.evalIndex = INDEX_TRUE;
							}
						}
						
						// check which parameters should be evaluated
						for (; call.evalIndex < compiledParams.length; call.evalIndex++)
						{
							//trace(StringLib.lpad('', stack.length, '\t') + "[" + call.evalIndex + "] " + compiledParams[call.evalIndex].name);
							
							// handle branching and short-circuiting
