Mercurial Hosting > luan
diff core/src/luan/impl/FnCall.java @ 577:d7a85fbe15f1
minor
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 13 Jul 2015 20:53:02 -0600 |
parents | 4723d22062ce |
children | 60c549d43988 |
line wrap: on
line diff
--- a/core/src/luan/impl/FnCall.java Mon Jul 13 20:38:26 2015 -0600 +++ b/core/src/luan/impl/FnCall.java Mon Jul 13 20:53:02 2015 -0600 @@ -20,21 +20,21 @@ } @Override public Object eval(LuanStateImpl luan) throws LuanException { - return call( luan, fnExpr.eval(luan) ); + return call( luan, fnExpr.eval(luan), Luan.array(args.eval(luan)) ); } - private Object call(LuanStateImpl luan,Object o) throws LuanException { + private Object call(LuanStateImpl luan,Object o,Object[] argVals) throws LuanException { luan.push(el,fnName); try { if( o instanceof LuanFunction ) { LuanFunction fn = (LuanFunction)o; - return fn.call( luan, Luan.array(args.eval(luan)) ); + return fn.call( luan, argVals ); } if( o instanceof LuanTable ) { LuanTable t = (LuanTable)o; Object h = t.getHandler("__call"); if( h != null ) - return call(luan,h); + return call(luan,h,argVals); } throw luan.exception( "attempt to call '"+fnName+"' (a " + Luan.type(o) + " value)" ); } finally {