[re]-merged in Brians stuff
[org.ibex.core.git] / src / org / ibex / js / JSExn.java
diff --git a/src/org/ibex/js/JSExn.java b/src/org/ibex/js/JSExn.java
deleted file mode 100644 (file)
index 2afcef1..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2004 Adam Megacz, see the COPYING file for licensing [GPL] 
-package org.ibex.js; 
-
-import org.ibex.util.*; 
-import java.io.*;
-
-/** An exception which can be thrown and caught by JavaScript code */
-public class JSExn extends Exception { 
-    private Vec backtrace = new Vec();
-    private JS js; 
-    public JSExn(String s) { this(JS.S(s)); }
-    public JSExn(JS js) { this(js,null); }
-    public JSExn(JS js, Interpreter cx) { this.js = js; fill(cx); }
-    
-    private void fill(Interpreter cx) {
-        if(cx == null) cx = Interpreter.current();
-        if(cx == null) return;
-        addBacktrace(cx.f.sourceName + ":" + cx.f.line[cx.pc]);
-        cx.stack.backtrace(this);
-    }
-    public void printStackTrace() { printStackTrace(System.err); }
-    public void printStackTrace(PrintWriter pw) {
-        for(int i=0; i<backtrace.size(); i++) pw.println("    at " + (String) backtrace.elementAt(i));
-        super.printStackTrace(pw);
-    }
-    public void printStackTrace(PrintStream ps) {
-        for(int i=0; i<backtrace.size(); i++) ps.println("    at " + (String) backtrace.elementAt(i));
-        super.printStackTrace(ps);
-    }
-    public String toString() { return "JSExn: " + JS.debugToString(js); }
-    public String getMessage() { return toString(); }
-    public JS getObject() { return js; } 
-    
-    void addBacktrace(String line) { backtrace.addElement(line); }
-    
-    public static class Wrapper extends RuntimeException {
-        public final JSExn e;
-        public Wrapper(JSExn e) { this.e = e; }
-        public JSExn refill() {
-            e.addBacktrace("[foreign code]");
-            e.fill(null);
-            return e;
-        }
-    }
-    
-    public static class IO extends JSExn {
-        public IO(java.io.IOException ioe) {
-            super("ibex.io: " + ioe.toString());
-            JS.warn(ioe);
-        }
-    }
-}