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

remove LuanBit
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 13 Jul 2015 20:38:26 -0600
parents b48cfa14ba60
children abc3198c86dd
line wrap: on
line diff
--- a/core/src/luan/impl/ReturnStmt.java	Mon Jul 13 18:34:31 2015 -0600
+++ b/core/src/luan/impl/ReturnStmt.java	Mon Jul 13 20:38:26 2015 -0600
@@ -27,11 +27,16 @@
 		luan.returnValues = expressions.eval(luan);
 		if( tailFnExpr != null ) {
 			LuanElement elTail = tailFnExpr.el();
-			LuanFunction tailFn = luan.bit(elTail).checkFunction( tailFnExpr.eval(luan) );
-			if( tailFn instanceof Closure ) {
-				luan.tailFn = (Closure)tailFn;
-			} else {
-				luan.returnValues =  luan.bit(elTail).call(tailFn,elTail.text(),Luan.array(luan.returnValues));
+			luan.push(elTail,elTail.text());
+			try {
+				LuanFunction tailFn = luan.checkFunction( tailFnExpr.eval(luan) );
+				if( tailFn instanceof Closure ) {
+					luan.tailFn = (Closure)tailFn;
+				} else {
+					luan.returnValues =  tailFn.call(luan,Luan.array(luan.returnValues));
+				}
+			} finally {
+				luan.pop();
 			}
 		}
 		if( throwReturnException )