Mercurial Hosting > luan
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