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 + "\"");
}
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 */