diff core/src/luan/LuanBit.java @ 481:5d4a78c93383

luan errors are now tables
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 11 May 2015 20:26:36 -0600
parents e12841f7edef
children e3b0846dc2ef
line wrap: on
line diff
--- a/core/src/luan/LuanBit.java	Mon May 11 16:43:04 2015 -0600
+++ b/core/src/luan/LuanBit.java	Mon May 11 20:26:36 2015 -0600
@@ -12,18 +12,18 @@
 		this.el = el;
 	}
 
-	public LuanException exception(Object msg) {
+	public LuanException exception(Object msg) throws LuanException {
 		return new LuanException(this,msg);
 	}
 
-	public String stackTrace() {
-		StringBuilder buf = new StringBuilder();
+	public StackTraceElement[] stackTrace() {
+		List<StackTraceElement> stackTrace = luan.stackTrace;
 		if( el != null )
-			buf.append( "\n\t" ).append( el.toString(null) );
-		for( int i  = luan.stackTrace.size() - 1; i>=0; i-- ) {
-			buf.append( "\n\t" ).append( luan.stackTrace.get(i) );
-		}
-		return buf.toString();
+			stackTrace.add(new StackTraceElement(el,null));
+		StackTraceElement[] rtn = stackTrace.toArray(new StackTraceElement[0]);
+		if( el != null )
+			stackTrace.remove(stackTrace.size()-1);
+		return rtn;
 	}
 
 	public void dumpStack() {
@@ -93,10 +93,6 @@
 			return "nil";
 		if( obj instanceof Number )
 			return Luan.toString((Number)obj);
-		if( obj instanceof LuanException ) {
-			LuanException le = (LuanException)obj;
-			return le.getFullMessage();
-		}
 		if( obj instanceof byte[] )
 			return "binary: " + Integer.toHexString(obj.hashCode());
 		return obj.toString();