# HG changeset patch # User Matthew Wild # Date 1290567121 0 # Node ID 6872878601d981570eb0ab75a780d6fa5dbaeb6d # Parent 0b31998aad5310c68800d9d60f45edb3f0b48dd9 Add LVM.traceback() function diff -r 0b31998aad53 -r 6872878601d9 lvm.js --- 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; } };