diff core/src/luan/impl/ForStmt.java @ 576:4723d22062ce

remove LuanBit
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 13 Jul 2015 20:38:26 -0600
parents 55f9f74f1e55
children d7a85fbe15f1
line wrap: on
line diff
--- a/core/src/luan/impl/ForStmt.java	Mon Jul 13 18:34:31 2015 -0600
+++ b/core/src/luan/impl/ForStmt.java	Mon Jul 13 20:38:26 2015 -0600
@@ -4,7 +4,6 @@
 import luan.LuanException;
 import luan.LuanFunction;
 import luan.LuanElement;
-import luan.LuanBit;
 
 
 final class ForStmt extends CodeImpl implements Stmt {
@@ -22,12 +21,12 @@
 	}
 
 	@Override public void eval(LuanStateImpl luan) throws LuanException {
-		LuanBit bit = luan.bit(iterExpr.el());
-		LuanFunction iter = bit.checkFunction( iterExpr.eval(luan) );
-		String name = iterExpr.el().text();
+		luan.push( iterExpr.el(), iterExpr.el().text() );
 		try {
+			LuanFunction iter = luan.checkFunction( iterExpr.eval(luan) );
+			String name = iterExpr.el().text();
 			while(true) {
-				Object vals = bit.call(iter,name,LuanFunction.NOTHING);
+				Object vals = iter.call(luan);
 				if( vals==null )
 					break;
 				if( vals instanceof Object[] ) {
@@ -48,6 +47,7 @@
 		} catch(BreakException e) {
 		} finally {
 			luan.stackClear(iVars,iVars+nVars);
+			luan.pop();
 		}
 	}