diff src/luan/modules/Boot.luan @ 1283:503bde9a7c80

add luan.require() and table.call()
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 21 Dec 2018 09:12:09 -0700
parents 781ec0a92bb5
children 9eb3a9724853
line wrap: on
line diff
--- a/src/luan/modules/Boot.luan	Thu Dec 20 17:44:34 2018 -0700
+++ b/src/luan/modules/Boot.luan	Fri Dec 21 09:12:09 2018 -0700
@@ -4,6 +4,7 @@
 local BasicLuan = require "java:luan.modules.BasicLuan"
 local new_error = BasicLuan.new_error
 local ipairs = BasicLuan.ipairs
+local set_metatable = BasicLuan.set_metatable
 local StringLuan = require "java:luan.modules.StringLuan"
 local match = StringLuan.match  -- String.match
 local IoLuan = require "java:luan.modules.IoLuan"
@@ -185,4 +186,22 @@
 end
 
 
+local error_mt = {}
+
+function error_mt.__to_string(t)
+	return t.java.getLuanStackTraceString()
+end
+
+function Boot.new_error_table(ex)  -- for LuanException.java
+	local this = {}
+	set_metatable(this,error_mt)
+	this.java = ex
+	this.get_message = ex.getMessage
+	this.throw = ex.throwThis
+	this.get_stack_trace_string = ex.getLuanStackTraceString
+	this.get_java_stack_trace_string = ex.getLuanStackTraceString
+	return this
+end
+
+
 return Boot