X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fjs%2FJSExn.java;h=ff4abc54bd5be8894ea7f1433882dc4c371b26c6;hb=2c3f170edc8e0da2de19f8a902e59fd04ea6c990;hp=8c1362ddf2029825b39b0978c9ab96bfe4c59a42;hpb=b1a58aeb4adfade0697650583ec5801fa6e88d5e;p=org.ibex.core.git diff --git a/src/org/ibex/js/JSExn.java b/src/org/ibex/js/JSExn.java index 8c1362d..ff4abc5 100644 --- a/src/org/ibex/js/JSExn.java +++ b/src/org/ibex/js/JSExn.java @@ -23,7 +23,7 @@ public class JSExn extends Exception { if (element instanceof Interpreter.CallMarker) { Interpreter.CallMarker cm = (Interpreter.CallMarker)element; if (cm.f != null) - addBacktrace(cm.f.sourceName + ":" + cm.f.line[cm.pc]); + addBacktrace(cm.f.sourceName + ":" + cm.f.line[cm.pc-1]); if (cm.scope != null && cm.scope instanceof Trap.TrapScope) addBacktrace("trap on property \"" + ((Trap.TrapScope)cm.scope).t.name + "\""); } @@ -42,6 +42,14 @@ public class JSExn extends Exception { public String getMessage() { return toString(); } public Object getObject() { return js; } public void addBacktrace(String line) { backtrace.addElement(line); } + + + public static class IO extends JSExn { + public IO(java.io.IOException ioe) { + super("ibex.io: " + ioe.toString()); + JS.warn(ioe); + } + } } /** should only be used for failed coercions */