diff src/luan/interp/LuaStateImpl.java @ 36:2a35154aec14

implement more basic lib functions git-svn-id: https://luan-java.googlecode.com/svn/trunk@37 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Tue, 18 Dec 2012 09:53:42 +0000
parents 0cdc1da466ee
children 8a57ebfdfd78
line wrap: on
line diff
--- a/src/luan/interp/LuaStateImpl.java	Tue Dec 18 07:05:58 2012 +0000
+++ b/src/luan/interp/LuaStateImpl.java	Tue Dec 18 09:53:42 2012 +0000
@@ -1,8 +1,10 @@
 package luan.interp;
 
+import luan.Lua;
 import luan.LuaState;
 import luan.LuaTable;
 import luan.LuaFunction;
+import luan.LuaException;
 
 
 final class LuaStateImpl implements LuaState {
@@ -12,6 +14,14 @@
 		return global;
 	}
 
+	@Override public String toString(Object obj) throws LuaException {
+		LuaFunction fn = Utils.getHandlerFunction("__tostring",obj);
+		if( fn != null )
+			return Lua.checkString( Utils.first( fn.call(this,obj) ) );
+		if( obj == null )
+			return "nil";
+		return obj.toString();
+	}
 
 	private static class Frame {
 		final Frame previousFrame;