diff src/luan/interp/NumericForStmt.java @ 32:c3eab5a3ce3c

implement closures git-svn-id: https://luan-java.googlecode.com/svn/trunk@33 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 14 Dec 2012 05:40:35 +0000
parents 5cf15507d77e
children e3624b7cd603
line wrap: on
line diff
--- a/src/luan/interp/NumericForStmt.java	Thu Dec 13 02:50:04 2012 +0000
+++ b/src/luan/interp/NumericForStmt.java	Fri Dec 14 05:40:35 2012 +0000
@@ -24,16 +24,15 @@
 		double v = Lua.checkNumber( fromExpr.eval(lua) ).value();
 		double limit = Lua.checkNumber( toExpr.eval(lua) ).value();
 		double step = Lua.checkNumber( stepExpr.eval(lua) ).value();
-		Object[] stack = lua.stack();
 		try {
 			while( step > 0.0 && v <= limit || step < 0.0 && v >= limit ) {
-				stack[iVar] = new LuaNumber(v);
+				lua.stackSet( iVar, new LuaNumber(v) );
 				block.eval(lua);
 				v += step;
 			}
 		} catch(BreakException e) {
 		} finally {
-			stack[iVar] = null;
+			lua.stackClear(iVar,iVar+1);
 		}
 	}