diff core/src/luan/LuanState.java @ 509:e3b0846dc2ef

throw exception for invalid indexes of string, binary, or java
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 22 May 2015 02:02:49 -0600
parents 92c3d22745b8
children 8dcf9e12446b
line wrap: on
line diff
--- a/core/src/luan/LuanState.java	Thu May 21 20:20:54 2015 -0600
+++ b/core/src/luan/LuanState.java	Fri May 22 02:02:49 2015 -0600
@@ -45,6 +45,20 @@
 		return call(fn);
 	}
 
+	public String toString(Object obj) throws LuanException {
+		if( obj instanceof LuanTable ) {
+			LuanTable tbl = (LuanTable)obj;
+			return tbl.toString(this);
+		}
+		if( obj == null )
+			return "nil";
+		if( obj instanceof Number )
+			return Luan.toString((Number)obj);
+		if( obj instanceof byte[] )
+			return "binary: " + Integer.toHexString(obj.hashCode());
+		return obj.toString();
+	}
+
 	public final LuanBit bit(LuanElement el) {
 		return new LuanBit(this,el);
 	}
@@ -85,10 +99,6 @@
 		return JAVA.checkFunction(obj);
 	}
 
-	public String toString(Object obj) throws LuanException {
-		return JAVA.toString(obj);
-	}
-
 	public boolean isLessThan(Object o1,Object o2) throws LuanException {
 		return JAVA.isLessThan(o1,o2);
 	}