Wed, 24 Nov 2010 02:52:01 +0000
Add LVM.traceback() function
lvm.js | file | annotate | diff | comparison | revisions |
--- a/lvm.js Wed Nov 24 02:51:38 2010 +0000 +++ b/lvm.js Wed Nov 24 02:52:01 2010 +0000 @@ -776,6 +776,21 @@ var c = new LBinaryChunk(this, chunk); var f = new LFunction(this, c, env); return new LValue(this, "function", f); + }, + traceback: function () + { + var trace = []; + for(var i=this.callstack.length-1; i>=0; i--) + { + var currframe = testvm.callstack[i]; + var currfunc = currframe.f; + var sourceName = (currfunc.sourceName||"=?").substr(1); + var line = "?"; + if(currfunc.sourceLines && currfunc.sourceLines[currframe.pc-1]) + line = currfunc.sourceLines[currframe.pc-1]; + trace.push({ sourceName: sourceName, line: line }); + } + return trace; } };