930 sys.puts("Returned: "+sys.inspect(ret)); |
930 sys.puts("Returned: "+sys.inspect(ret)); |
931 |
931 |
932 } |
932 } |
933 catch(e) |
933 catch(e) |
934 { |
934 { |
935 var currframe = testvm.callstack[testvm.callstack.length-1]; |
935 var trace = testvm.traceback(); |
|
936 var currframe = trace[0]; |
936 if(currframe) |
937 if(currframe) |
937 { |
938 { |
938 var currfunc = currframe.f; |
939 sys.print("lvm.js: "+currframe.sourceName+":"+currframe.line+": "); |
939 var sourceName = (currfunc.sourceName||"=<unknown>").substr(1); |
|
940 var line = "?"; |
|
941 if(currfunc.sourceLines && currfunc.sourceLines[currframe.pc-1]) |
|
942 line = currfunc.sourceLines[currframe.pc-1]; |
|
943 sys.print("lvm.js: "+sourceName+":"+line+": "); |
|
944 } |
940 } |
945 sys.puts(e); |
941 sys.puts(e); |
946 if(typeof(e) == "object" && "stack" in e) |
942 if(typeof(e) == "object" && "stack" in e) |
947 sys.puts(e.stack); |
943 sys.puts(e.stack); |
948 process.exit(1); |
944 process.exit(1); |