Mercurial Hosting > luan
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); } }