Here is a patch that at least fixes the compilation problem. I wonder is anybody interested in that?

Regards, Igor Bukanov

Stefan Bodewig wrote:
----------------------------------------------------
This email is autogenerated from the output from:
<http://cvs.apache.org/builds/gump/2003-03-07/jakarta-bsf.html>
----------------------------------------------------

Buildfile: build.xml

init:

prepare:
    [mkdir] Created dir: /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/build

bsf_debug-compile:
     [echo] Target: bsf_debug - Compile ...

init:

prepare:
    [mkdir] Created dir: 
/home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf_debug/build/lib

compile:
    [javac] Compiling 40 source files to 
/home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf_debug/build/classes
      [jar] Building jar: 
/home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf_debug/build/lib/bsf_debug.jar

bsf-compile:
     [echo] Target: bsf - Compile ...

init:

prepare:

checkDependencies:

checkJacl:
     [echo] Warning: Jacl dependencies were not resolved.

checkJPython:
     [echo] Warning: JPython dependencies were not resolved.

checkJython:

checkNetRexx:
     [echo] Warning: NetRexx dependencies were not resolved.

checkRhino:

checkXalan:

compile:
[copy] Copying 1 file to /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/build/classes
[javac] Compiling 66 source files to /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/build/classes
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoContextProxy.java:79: cannot resolve symbol
[javac] symbol : class DebuggableEngine [javac] location: class org.apache.bsf.engines.javascript.RhinoContextProxy
[javac] DebuggableEngine m_engine;
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JsEngineStub.java:65: cannot resolve symbol
[javac] symbol : class DebuggableEngine [javac] location: package debug
[javac] import org.mozilla.javascript.debug.DebuggableEngine;
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/CompilationUnit.java:124: cannot resolve symbol
[javac] symbol : method getScriptable ()
[javac] location: interface org.mozilla.javascript.debug.DebuggableScript
[javac] Scriptable scriptable = dbgScript.getScriptable();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/CompilationUnit.java:157: cannot resolve symbol
[javac] symbol : method placeBreakpoint (int)
[javac] location: interface org.mozilla.javascript.debug.DebuggableScript
[javac] m_dbgScript.placeBreakpoint(lineno);
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/CompilationUnit.java:167: cannot resolve symbol
[javac] symbol : method removeBreakpoint (int)
[javac] location: interface org.mozilla.javascript.debug.DebuggableScript
[javac] m_dbgScript.removeBreakpoint(lineno);
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoEngineDebugger.java:77: org.apache.bsf.engines.javascript.RhinoEngineDebugger should be declared abstract; it does not define handleCompilationDone(org.mozilla.javascript.Context,org.mozilla.javascript.debug.DebuggableScript,java.lang.String) in org.apache.bsf.engines.javascript.RhinoEngineDebugger
[javac] public class RhinoEngineDebugger implements Debugger {
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoEngineDebugger.java:476: org.mozilla.javascript.NativeError is not public in org.mozilla.javascript; cannot be accessed from outside package
[javac] NativeError error;
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoEngineDebugger.java:498: org.mozilla.javascript.NativeError is not public in org.mozilla.javascript; cannot be accessed from outside package
[javac] error = (NativeError)exceptionThrown;
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoEngineDebugger.java:499: getName() is not public in org.mozilla.javascript.NativeError; cannot be accessed from outside package
[javac] msg = error.getName() + ": " + error.getMessage();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoEngineDebugger.java:499: getMessage() is not public in org.mozilla.javascript.NativeError; cannot be accessed from outside package
[javac] msg = error.getName() + ": " + error.getMessage();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoContextProxy.java:93: cannot resolve symbol
[javac] symbol : method getDebuggableEngine ()
[javac] location: class org.mozilla.javascript.Context
[javac] m_engine = cx.getDebuggableEngine();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoContextProxy.java:122: cannot resolve symbol
[javac] symbol : method getLineNumber ()
[javac] location: interface org.mozilla.javascript.debug.DebugFrame
[javac] return frame.getLineNumber();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoContextProxy.java:132: cannot resolve symbol
[javac] symbol : method getSourceName ()
[javac] location: interface org.mozilla.javascript.debug.DebugFrame
[javac] return frame.getSourceName();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JsContextStub.java:103: cannot resolve symbol
[javac] symbol : method getVariableObject ()
[javac] location: interface org.mozilla.javascript.debug.DebugFrame
[javac] Scriptable obj = m_frame.getVariableObject();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JsContextStub.java:152: cannot resolve symbol
[javac] symbol : method getLineNumber ()
[javac] location: interface org.mozilla.javascript.debug.DebugFrame
[javac] return m_frame.getLineNumber();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JsContextStub.java:167: cannot resolve symbol
[javac] symbol : method getVariableObject ()
[javac] location: interface org.mozilla.javascript.debug.DebugFrame
[javac] Scriptable varobj = m_frame.getVariableObject();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JsContextStub.java:183: cannot resolve symbol
[javac] symbol : method getSourceName ()
[javac] location: interface org.mozilla.javascript.debug.DebugFrame
[javac] return m_frame.getSourceName();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JsContextStub.java:201: cannot resolve symbol
[javac] symbol : method getVariableObject ()
[javac] location: interface org.mozilla.javascript.debug.DebugFrame
[javac] Scriptable varobj = m_frame.getVariableObject();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JsContextStub.java:261: cannot resolve symbol
[javac] symbol : method getVariableObject ()
[javac] location: interface org.mozilla.javascript.debug.DebugFrame
[javac] Scriptable obj = m_frame.getVariableObject();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JavaScriptEngine.java:143: cannot resolve symbol
[javac] symbol : class DebuggableEngine [javac] location: class org.apache.bsf.engines.javascript.JavaScriptEngine
[javac] DebuggableEngine engine;
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JavaScriptEngine.java:163: cannot resolve symbol
[javac] symbol : method getDebuggableEngine ()
[javac] location: class org.mozilla.javascript.Context
[javac] engine = cx.getDebuggableEngine();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JavaScriptEngine.java:178: cannot resolve symbol
[javac] symbol : method getDebuggableEngine ()
[javac] location: class org.mozilla.javascript.Context
[javac] engine = cx.getDebuggableEngine();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JavaScriptEngine.java:219: cannot resolve symbol
[javac] symbol : class DebuggableEngine [javac] location: class org.apache.bsf.engines.javascript.JavaScriptEngine
[javac] DebuggableEngine engine;
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JavaScriptEngine.java:240: cannot resolve symbol
[javac] symbol : method getDebuggableEngine ()
[javac] location: class org.mozilla.javascript.Context
[javac] engine = cx.getDebuggableEngine();
[javac] ^
[javac] /home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JavaScriptEngine.java:263: cannot resolve symbol
[javac] symbol : method getDebuggableEngine ()
[javac] location: class org.mozilla.javascript.Context
[javac] engine = cx.getDebuggableEngine();
[javac] ^
[javac] 25 errors


BUILD FAILED
file:///home/rubys/jakarta/jakarta-bsf/src/bsf-2.3/bsf/build.xml:211: Compile failed; 
see the compiler error output for details.

Total time: 9 seconds

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Index: CompilationUnit.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/CompilationUnit.java,v
retrieving revision 1.2
diff -u -r1.2 CompilationUnit.java
--- CompilationUnit.java        7 Nov 2002 01:49:12 -0000       1.2
+++ CompilationUnit.java        14 Feb 2003 22:05:46 -0000
@@ -74,7 +74,7 @@
  * of script is sliced into compilation units.
  * For instance, the script text may contain a function
  * declaration and an expression to eval. The compilation
- * will result in two compilation units: the function and 
+ * will result in two compilation units: the function and
  * the expression. Each compilation unit will correspond
  * to a range of the lines of the original script compiled.
  * All line numbers are global to the document the compiled
@@ -82,89 +82,95 @@
  * It is on compilation units that breakpoints can be set
  * or removed, more exactly on the DebuggableScript attached
  * to them. See Rhino for more details.
- * 
+ *
  * @author: Olivier Gruber.
- */ 
+ */
 public class CompilationUnit {
 
-       FnOrScript m_fnOrScript;
-       int m_firstLine;
-       int m_lineCount;
-       String m_fnName;
-       DebuggableScript m_dbgScript;
-       int m_validBrkptLines[];
-
-       /**
-        * CompilationUnit constructor comment.
-        */
-       public CompilationUnit(FnOrScript fnOrScript, DebuggableScript dbgScript) {
-
-               int lastLine, lineno;
-
-               m_fnOrScript = fnOrScript;
-               m_dbgScript = dbgScript;
-
-               try {
-                       m_validBrkptLines = dbgScript.getLineNumbers();
-                       m_firstLine = 99999;
-                       lastLine = 0;
-                       for (int l = 0; l < m_validBrkptLines.length; l++) {
-                               lineno = m_validBrkptLines[l];
-                               if (m_firstLine > lineno)
-                                       m_firstLine = lineno;
-                               if (lastLine < lineno)
-                                       lastLine = lineno;
-                       }
-                       m_lineCount = lastLine - m_firstLine + 1;
-               } catch (Throwable t) {
-                       DebugLog.stderrPrintln("\nWarning: can't get valid line 
numbers for breakpoints.", DebugLog.BSF_LOG_L2);
-                       m_validBrkptLines = null;
-               }
-
-               Scriptable scriptable = dbgScript.getScriptable();
-               if (scriptable instanceof NativeFunction) {
-                       NativeFunction f = (NativeFunction) scriptable;
-                       String name = f.getFunctionName();
-                       if (name.length() > 0 && !name.equals("anonymous")) {
-                               m_fnName = name;
-                       }
-               }
-       }
-       //----------------------------------------------------------
-       boolean contains(int lineno) {
-               return (m_firstLine <= lineno && lineno < m_firstLine + m_lineCount);
-       }
-       /**
-        * Returns true if the compilation unit contains
-        * the breakpoint. 
-        * Notice only breakpoint defined at a line number
-        * are supported here.
-        */
-       boolean contains(BreakPoint bp) {
-               try {
-                       return contains(bp.getLineNo());
-               } catch (BSFException ex) {
-                       return false;
-               }
-       }
-       /**
-        * Propagates (i.e. set) this breakpoint to the underlying Rhino
-        * engine if Rhino has provided us with the valid lines
-        * information. Otherwise, Rhino crashes with a NullPointerException.
-        */
-       void propagate(int lineno) {
-               if (m_validBrkptLines != null) {
-                       m_dbgScript.placeBreakpoint(lineno);
-               }
-       }
-       /**
-        * Unpropagates (i.e. unset) this breakpoint to the underlying Rhino
-        * engine if Rhino has provided us with the valid lines
-        * information. Otherwise, Rhino crashes with a NullPointerException.
-        */
-       void unpropagate(int lineno) {
-               if (m_validBrkptLines != null) {
-                       m_dbgScript.removeBreakpoint(lineno);
-               }
-       }
+    FnOrScript m_fnOrScript;
+    int m_firstLine;
+    int m_lineCount;
+    String m_fnName;
+    DebuggableScript m_dbgScript;
+    boolean[] m_breakpoints;
+
+    /**
+     * CompilationUnit constructor comment.
+     */
+    public CompilationUnit(FnOrScript fnOrScript, DebuggableScript dbgScript) {
+
+        m_fnOrScript = fnOrScript;
+        m_dbgScript = dbgScript;
+
+        int[] lines = dbgScript.getLineNumbers();
+        if (lines.length != 0) {
+            int lastLine;
+            m_firstLine = lines[0];
+            lastLine = m_firstLine;
+            for (int i = 1; i != lines.length; ++i) {
+                int lineno = lines[i];
+                if (m_firstLine > lineno) {
+                    m_firstLine = lineno;
+                } else if (lastLine < lineno) {
+                    lastLine = lineno;
+                }
+            }
+            m_lineCount = lastLine - m_firstLine + 1;
+            m_breakpoints = new boolean[m_lineCount];
+        }
+
+        String name = dbgScript.getFunctionName();
+        if (name != null && name.length() != 0 && !name.equals("anonymous")) {
+            m_fnName = name;
+        }
+    }
+    //----------------------------------------------------------
+    boolean contains(int lineno) {
+        return (m_firstLine <= lineno && lineno < m_firstLine + m_lineCount);
+    }
+    /**
+     * Returns true if the compilation unit contains
+     * the breakpoint.
+     * Notice only breakpoint defined at a line number
+     * are supported here.
+     */
+    boolean contains(BreakPoint bp) {
+        try {
+            return contains(bp.getLineNo());
+        } catch (BSFException ex) {
+            return false;
+        }
+    }
+    /**
+     * Set a breakpoint at the given line if Rhino has provided us with the
+     * valid lines information.
+     */
+    void propagate(int lineno) {
+        if (m_breakpoints != null) {
+            int i = lineno - m_firstLine;
+            if (0 <= i && i < m_lineCount) {
+                m_breakpoints[i] = true;
+            }
+        }
+    }
+    /**
+     * Clear a breakpoint at the given line if Rhino has provided us with the
+     * valid lines information.
+     */
+    void unpropagate(int lineno) {
+        if (m_breakpoints != null) {
+            int i = lineno - m_firstLine;
+            if (0 <= i && i < m_lineCount) {
+                m_breakpoints[i] = false;
+            }
+        }
+    }
+
+    boolean hasBreakpoint(int lineno) {
+        if (m_breakpoints != null) {
+            int i = lineno - m_firstLine;
+            return 0 <= i && i < m_lineCount && m_breakpoints[i];
+        }
+        return false;
+    }
 }
Index: FnOrScript.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/FnOrScript.java,v
retrieving revision 1.2
diff -u -r1.2 FnOrScript.java
--- FnOrScript.java     7 Nov 2002 01:49:12 -0000       1.2
+++ FnOrScript.java     14 Feb 2003 22:05:46 -0000
@@ -71,25 +71,25 @@
  * This class represents a function or script, that is,
  * a piece of a document that is provided to the JavaScript
  * engine for evaluation, execution, or simply compilation.
- * 
+ *
  * A FnOrScript represents a range of lines or characters
- * in its document. For now, Rhino only supports ranges 
+ * in its document. For now, Rhino only supports ranges
  * of lines, really, but the code for offsets is there anyway.
  *
  * Warning: Offsets have never been quite tested yet...
- * 
+ *
  * A FnOrScript has compilation units. When Rhino compiles
  * a function or a script, even in interpreted mode where the
  * compilation is done to JavaScript bytecode, it calls back
- * its debugger with different compilation units; see 
+ * its debugger with different compilation units; see
  * Debugger::handleCompilationDone method on the RhinoEngineDebugger
  * class.
  *
  * A FnOrScript also keeps track of the known breakpoints
  * in its range of lines or characters. It makes sure
- * that they are propagated to the underlying Rhino 
+ * that they are propagated to the underlying Rhino
  * engine (i.e. set) as well as unpropagated (i.e. unset).
- *  
+ *
  * @author: Olivier Gruber
  */
 public class FnOrScript {
@@ -103,9 +103,11 @@
 
     protected StringBuffer m_text;
 
-    protected Vector m_units; // of CompilationUnit.
     protected Script m_script;
 
+    private Vector m_units; // of CompilationUnit.
+    private Hashtable m_functionToUnit;
+
     protected Hashtable m_functionMap;
 
     public FnOrScript(DocumentCell cell) {
@@ -116,8 +118,9 @@
         m_lineCount = 0;
         m_breakpoints = new Vector();
         m_text = new StringBuffer();
-       
+
         m_units = new Vector();
+        m_functionToUnit = new Hashtable();
         m_functionMap = new Hashtable();
     }
 
@@ -131,7 +134,7 @@
 
         m_breakpoints.addElement(bp);
 
-        // now, look for a unit containing it and 
+        // now, look for a unit containing it and
         // if one is found, set the breakpoint unit
         // and propagate...
         Enumeration e;
@@ -147,7 +150,7 @@
         }
         return bp;
     }
-       
+
     private BreakPoint _removeBreakpoint(int brkptId) {
         Enumeration e;
         BreakPoint bp;
@@ -173,13 +176,13 @@
             bp = (BreakPoint) e.nextElement();
             if (bpid == bp.getId()) {
                 m_breakpoints.removeElement(bp);
-                bp.unpropagate();      
+                bp.unpropagate();
                 return bp;
             }
         }
         return null;
     }
-       
+
     boolean contains(BreakPoint bp) throws BSFException {
         if (m_lineDefined) {
             int line = bp.getLineNo();
@@ -194,7 +197,7 @@
     // This protected method works as a factory
     // for language-specific breakpoints.
     // The default behavior is to use the provided
-    // generic breakpoint. 
+    // generic breakpoint.
     // See javascript for an example of language-specific
     // breakpoints.
 
@@ -360,17 +363,18 @@
 
     public void addCompilationUnit(Context cx,
                                    DebuggableScript dbgScript,
-                                   StringBuffer source) {
+                                   String source) {
 
         CompilationUnit unit;
 
         unit = new CompilationUnit(this, dbgScript);
         m_units.addElement(unit);
+        m_functionToUnit.put(dbgScript, unit);
         if (unit.m_fnName != null) {
             m_functionMap.put(unit.m_fnName, unit);
         }
 
-        // Associate breakpoints to this unit if 
+        // Associate breakpoints to this unit if
         // the unit contains them...
         Enumeration e;
         BreakPoint bp;
@@ -383,13 +387,17 @@
         propagateAll();
     }
 
+    CompilationUnit getCompilationUnit(DebuggableScript dbgScript) {
+        return (CompilationUnit)m_functionToUnit.get(dbgScript);
+    }
+
     public void compile(Context cx, Scriptable global)
         throws BSFException, IOException {
 
         Enumeration e;
         Reader reader = new StringReader(m_text.toString());
         m_script =
-            cx.compileReader(global, reader, m_cell.getName(), 
+            cx.compileReader(global, reader, m_cell.getName(),
                              m_startLine, null);
         if (m_script == null)
             throw new BSFException("Compilation of the script "
Index: JavaScriptEngine.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JavaScriptEngine.java,v
retrieving revision 1.3
diff -u -r1.3 JavaScriptEngine.java
--- JavaScriptEngine.java       13 Feb 2003 08:25:30 -0000      1.3
+++ JavaScriptEngine.java       14 Feb 2003 22:05:46 -0000
@@ -104,7 +104,7 @@
     public void disconnectedDebuggerNotify() {
         m_rhinoDbg.disconnectedDebuggerNotify();
     }
-       
+
     BSFDebugManagerImpl getDebugManager() {
         return dbgmgr;
     }
@@ -114,7 +114,7 @@
         m_rhinoDbg.placeBreakpointAtLine(brkptid, docname, lineno);
     }
 
-    public void placeBreakpointAtOffset(int brkptid, String docname, 
+    public void placeBreakpointAtOffset(int brkptid, String docname,
                                         int offset) throws BSFException {
         m_rhinoDbg.placeBreakpointAtOffset(brkptid, docname, offset);
     }
@@ -140,7 +140,6 @@
     public Object call(Object object, String method, Object[] args)
         throws BSFException {
         Object theReturnValue = null;
-        DebuggableEngine engine;
         Context cx;
         try {
 
@@ -160,13 +159,12 @@
 
                 cx.setOptimizationLevel(-1);
 
-                engine = cx.getDebuggableEngine();
-                engine.setDebugger(m_rhinoDbg);
+                cx.setDebugger(m_rhinoDbg, new RhinoContextProxy(m_rhinoDbg));
 
-                theReturnValue = ScriptRuntime.call(cx, fun, global, args, 
+                theReturnValue = ScriptRuntime.call(cx, fun, global, args,
                                                     null);
 
-            } 
+            }
             else {
                 cx.setOptimizationLevel(-1);
 
@@ -175,10 +173,9 @@
 
                 cx.setOptimizationLevel(0);
 
-                engine = cx.getDebuggableEngine();
-                engine.setDebugger(null);
+                cx.setDebugger(null, null);
 
-                theReturnValue = ScriptRuntime.call(cx, fun, global, args, 
+                theReturnValue = ScriptRuntime.call(cx, fun, global, args,
                                                     null);
             }
             if (theReturnValue instanceof Wrapper) {
@@ -203,7 +200,7 @@
             global.put(bean.name, global, wrapped);
         }
     }
-    
+
     /**
      * This is used by an application to evaluate a string containing
      * some expression.
@@ -216,7 +213,6 @@
         DocumentCell cell;
         FnOrScript fnOrScript;
         Script script;
-        DebuggableEngine engine;
         Context cx;
 
         try {
@@ -237,13 +233,7 @@
 
                 cx.setOptimizationLevel(-1);
 
-                engine = cx.getDebuggableEngine();
-                engine.setDebugger(m_rhinoDbg);
-
-                // Muck w/ this iff someone else hasn't already got it true
-                if (!engine.getBreakNextLine()) {
-                    engine.setBreakNextLine(cell.getEntryExit());
-                }
+                cx.setDebugger(m_rhinoDbg, new RhinoContextProxy(m_rhinoDbg));
 
                 fnOrScript.compile(cx, global);
                 m_rhinoDbg.setCompilingFnOrScript(null);
@@ -251,7 +241,7 @@
 
                 if (script != null) retval = script.exec(cx, global);
                 else retval = null;
-            } 
+            }
             else {
                 cx.setOptimizationLevel(-1);
 
@@ -260,11 +250,10 @@
 
                 cx.setOptimizationLevel(0);
 
-                engine = cx.getDebuggableEngine();
-                engine.setDebugger(null);
+                cx.setDebugger(null, null);
 
                 retval = cx.evaluateString(global, scriptText,
-                                           source, lineNo, 
+                                           source, lineNo,
                                            null);
             }
 
@@ -302,14 +291,14 @@
                 // Display its stack trace as a diagnostic
                 target = (Throwable) value;
             }
-        } 
-        else if (t instanceof EvaluatorException || 
+        }
+        else if (t instanceof EvaluatorException ||
                  t instanceof SecurityException) {
             message = t.getLocalizedMessage();
-        } 
+        }
         else if (t instanceof RuntimeException) {
             message = "Internal Error: " + t.toString();
-        } 
+        }
         else if (t instanceof StackOverflowError) {
             message = "Stack Overflow";
         }
@@ -319,7 +308,7 @@
         }
 
         //REMIND: can we recover the line number here?  I think
-        // Rhino does this by looking up the stack for bytecode 
+        // Rhino does this by looking up the stack for bytecode
         // see Context.getSourcePositionFromStack()
         // but I don't think this would work in interpreted mode
 
@@ -329,7 +318,7 @@
             // corrected the situation by aborting the loop and
             // a long stacktrace would end up on the user's console
             throw (Error) t;
-        } 
+        }
         else {
             throw new BSFException(BSFException.REASON_OTHER_ERROR,
                                    "JavaScript Error: " + message,
@@ -339,7 +328,7 @@
 
     /**
      * initialize the engine. put the manager into the context -> manager
-     * map hashtable too. 
+     * map hashtable too.
      */
     public void initialize(BSFManager mgr, String lang, Vector declaredBeans)
         throws BSFException {
Index: JsContextStub.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JsContextStub.java,v
retrieving revision 1.2
diff -u -r1.2 JsContextStub.java
--- JsContextStub.java  7 Nov 2002 01:49:12 -0000       1.2
+++ JsContextStub.java  14 Feb 2003 22:05:46 -0000
@@ -68,235 +68,267 @@
 * @author: Administrator
 */
 
-public class JsContextStub 
+public class JsContextStub
 extends org.apache.bsf.debug.util.Skeleton
    implements JsContext {
 
-       RhinoContextProxy m_rcp;
-       RhinoEngineDebugger m_rhinoDbg;
-       DebugFrame m_frame;
-       int m_frameno;
-       boolean m_atBreakpoint;
-       boolean m_invalid;
-
-       /**
-        * JsContextStub constructor comment.
-        */
-       public JsContextStub(RhinoContextProxy rcp, DebugFrame frame, int frameno)
-       throws RemoteException {
-                       super(org.apache.bsf.debug.util.DebugConstants.JS_CONTEXT_TID);
-               
-               m_rhinoDbg = rcp.getRhinoEngineDebugger();
-               m_rcp = rcp;
-               m_frame = frame;
-               m_frameno = frameno;
-               m_invalid = false;
-               m_atBreakpoint = true;
-       }
-       //--------------------------------------------------
-       void atBreakpoint(boolean atbrkpt) {
-               m_atBreakpoint = atbrkpt;
-       }
-       public JsObject bind(String id) throws RemoteException {
-               try {
-                       Context.enter();
-                       Scriptable obj = m_frame.getVariableObject();
-                       Object prop;
-                       while (obj != null) {
-                               Scriptable m = obj;
-                               do {
-                                       if (m.has(id, obj))
-                                               return 
m_rhinoDbg.marshallScriptable(obj);
-                                       m = m.getPrototype();
-                               } while (m != null);
-                               obj = obj.getParentScope();
-                       }
-                       throw new JsdiException("Name not in scope.");
-               } finally {
-                       Context.exit();
-               }
-       }
-       //--------------------------------------------------
-       public JsCode getCode() {
-               if (m_invalid)
-                       throw new JsdiException("This context no longer exists.");
-               if (!m_atBreakpoint)
-                       throw new JsdiException("Resumed context, can't get the 
code.");
-
-               try {
-                       Context.enter();
-                       return null;
-               } finally {
-                       Context.exit();
-               }
-       }
-       public int getDepth() {
-               return m_frameno;
-       }
-       //--------------------------------------------------
-       public JsEngine getEngine() {
-               RhinoEngineDebugger redbg;
-               redbg = m_rcp.getRhinoEngineDebugger();
-               return (JsEngine) redbg.getDebugInterface(); 
-               
-       }
-       //--------------------------------------------------
-       public int getLineNumber() {
-               if (m_invalid)
-                       throw new JsdiException("This context no longer exists.");
-               if (!m_atBreakpoint)
-                       throw new JsdiException("Resumed context, can't get line 
number.");
-
-               try {
-                       Context.enter();
-                       return m_frame.getLineNumber();
-               } finally {
-                       Context.exit();
-               }
-       }
-       //------------------------------------------------------  
-       public JsObject getScope() throws RemoteException {
-
-               if (m_invalid)
-                       throw new JsdiException("This context no longer exists.");
-               if (!m_atBreakpoint)
-                       throw new JsdiException("Resumed context, can't get line 
number.");
-
-               try {
-                       Context.enter();
-                       Scriptable varobj = m_frame.getVariableObject();
-                       JsObject scope = m_rhinoDbg.marshallScriptable(varobj);
-                       return scope;
-               } finally {
-                       Context.exit();
-               }
-       }
-       //------------------------------------------------------  
-       public String getSourceName() {
-               if (m_invalid)
-                       throw new JsdiException("This context no longer exists.");
-               if (!m_atBreakpoint)
-                       throw new JsdiException("Resumed context, can't get line 
number.");
-
-               try {
-                       Context.enter();
-                       return m_frame.getSourceName();
-               } finally {
-                       Context.exit();
-               }
-       }
-       //------------------------------------------------------  
-       public JsObject getThis() throws RemoteException {
-
-               if (m_invalid)
-                       throw new JsdiException("This context no longer exists.");
-               if (!m_atBreakpoint)
-                       throw new JsdiException("Resumed context, can't get line 
number.");
-
-               try {
-                       Context.enter();
-                       JsObject thisobj = null;
-                       Scriptable obj = null;
-                       NativeCall call = null;
-                       Scriptable varobj = m_frame.getVariableObject();
-                       if (varobj instanceof NativeCall) {
-                               call = (NativeCall) varobj;
-                               obj = call.getThisObj();
-                               thisobj = m_rhinoDbg.marshallScriptable(varobj);
-                       }
-                       return thisobj;
-               } finally {
-                       Context.exit();
-               }
-       }
-       //--------------------------------------------------
-       void invalidate() {
-               m_invalid = true;
-       }
-       //------------------------------------------------------  
-       public boolean isEvalContext() {
-               if (m_invalid)
-                       throw new JsdiException("This context no longer exists.");
-               if (!m_atBreakpoint)
-                       throw new JsdiException("Resumed context, can't get line 
number.");
-
-               try {
-                       Context.enter();
-                       return false;
-               } finally {
-                       Context.exit();
-               }
-       }
-       //------------------------------------------------------  
-       public boolean isFunctionContext() {
-               if (m_invalid)
-                       throw new JsdiException("This context no longer exists.");
-               if (!m_atBreakpoint)
-                       throw new JsdiException("Resumed context, can't get line 
number.");
-
-               try {
-                       Context.enter();
-                       return false;
-               } finally {
-                       Context.exit();
-               }
-       }
-       //------------------------------------------------------  
-       public boolean isScriptContext() {
-               if (m_invalid)
-                       throw new JsdiException("This context no longer exists.");
-               if (!m_atBreakpoint)
-                       throw new JsdiException("Resumed context, can't get line 
number.");
-               try {
-                       Context.enter();
-                       return true;
-               } finally {
-                       Context.exit();
-               }
-       }
-       public Object lookupName(String name) {
-
-               try {
-                       Context.enter();
-                       Scriptable obj = m_frame.getVariableObject();
-                       Object prop;
-                       while (obj != null) {
-                               Scriptable m = obj;
-                               do {
-                                       Object result = m.get(name, obj);
-                                       if (result != Scriptable.NOT_FOUND)
-                                               return result;
-                                       m = m.getPrototype();
-                               } while (m != null);
-                               obj = obj.getParentScope();
-                       }
-                       throw new JsdiException("Name is not in scope.");
-               } finally {
-                       Context.exit();
-               }
-       }
-       /**
-        * Looks up a name in the scope chain and returns its value.
-        */
-       public Object lookupName(Scriptable scopeChain, String id) {
-
-               try {
-                       Context.enter();
-                       Scriptable obj = scopeChain;
-                       Object prop;
-                       while (obj != null) {
-                               Scriptable m = obj;
-                               do {
-                                       Object result = m.get(id, obj);
-                                       if (result != Scriptable.NOT_FOUND)
-                                               return result;
-                                       m = m.getPrototype();
-                               } while (m != null);
-                               obj = obj.getParentScope();
-                       }
-                       return null;
-               } finally {
-                       Context.exit();
-               }
-       }
+    RhinoContextProxy m_rcp;
+    RhinoEngineDebugger m_rhinoDbg;
+    int m_frameno;
+    int m_lineno;
+    boolean m_atBreakpoint;
+    boolean m_invalid;
+
+    CompilationUnit m_unit;
+    Scriptable m_variableObject;
+    Scriptable m_thisObj;
+
+    /**
+     * JsContextStub constructor comment.
+     */
+    JsContextStub(RhinoContextProxy rcp, CompilationUnit unit)
+    throws RemoteException {
+        super(org.apache.bsf.debug.util.DebugConstants.JS_CONTEXT_TID);
+
+        m_rhinoDbg = rcp.getRhinoEngineDebugger();
+        m_rcp = rcp;
+        m_unit = unit;
+        m_invalid = false;
+        m_atBreakpoint = true;
+    }
+
+    DebugFrame getRhinoDebugFrame() {
+        return new RhinoDebugFrame(this);
+    }
+
+    //--------------------------------------------------
+    void atBreakpoint(boolean atbrkpt) {
+        m_atBreakpoint = atbrkpt;
+    }
+    public JsObject bind(String id) throws RemoteException {
+        try {
+            Context.enter();
+            Scriptable obj = m_variableObject;
+            Object prop;
+            while (obj != null) {
+                Scriptable m = obj;
+                do {
+                    if (m.has(id, obj))
+                        return m_rhinoDbg.marshallScriptable(obj);
+                    m = m.getPrototype();
+                } while (m != null);
+                obj = obj.getParentScope();
+            }
+            throw new JsdiException("Name not in scope.");
+        } finally {
+            Context.exit();
+        }
+    }
+    //--------------------------------------------------
+    public JsCode getCode() {
+        if (m_invalid)
+            throw new JsdiException("This context no longer exists.");
+        if (!m_atBreakpoint)
+            throw new JsdiException("Resumed context, can't get the code.");
+
+        try {
+            Context.enter();
+            return null;
+        } finally {
+            Context.exit();
+        }
+    }
+    public int getDepth() {
+        return m_frameno;
+    }
+    //--------------------------------------------------
+    public JsEngine getEngine() {
+        RhinoEngineDebugger redbg;
+        redbg = m_rcp.getRhinoEngineDebugger();
+        return (JsEngine) redbg.getDebugInterface();
+
+    }
+    //--------------------------------------------------
+    public int getLineNumber() {
+        if (m_invalid)
+            throw new JsdiException("This context no longer exists.");
+        if (!m_atBreakpoint)
+            throw new JsdiException("Resumed context, can't get line number.");
+
+        return m_lineno;
+    }
+    //------------------------------------------------------
+    public JsObject getScope() throws RemoteException {
+
+        if (m_invalid)
+            throw new JsdiException("This context no longer exists.");
+        if (!m_atBreakpoint)
+            throw new JsdiException("Resumed context, can't get line number.");
+
+        try {
+            Context.enter();
+            JsObject scope = m_rhinoDbg.marshallScriptable(m_variableObject);
+            return scope;
+        } finally {
+            Context.exit();
+        }
+    }
+    //------------------------------------------------------
+    public String getSourceName() {
+        if (m_invalid)
+            throw new JsdiException("This context no longer exists.");
+        if (!m_atBreakpoint)
+            throw new JsdiException("Resumed context, can't get line number.");
+
+        return m_unit.m_dbgScript.getSourceName();
+    }
+    //------------------------------------------------------
+    public JsObject getThis() throws RemoteException {
+
+        if (m_invalid)
+            throw new JsdiException("This context no longer exists.");
+        if (!m_atBreakpoint)
+            throw new JsdiException("Resumed context, can't get line number.");
+
+        try {
+            Context.enter();
+            JsObject thisobj = null;
+            Scriptable obj = null;
+            NativeCall call = null;
+            Scriptable varobj = m_variableObject;
+            if (varobj instanceof NativeCall) {
+                call = (NativeCall) varobj;
+                obj = call.getThisObj();
+                thisobj = m_rhinoDbg.marshallScriptable(varobj);
+            }
+            return thisobj;
+        } finally {
+            Context.exit();
+        }
+    }
+    //--------------------------------------------------
+    void invalidate() {
+        m_invalid = true;
+    }
+    //------------------------------------------------------
+    public boolean isEvalContext() {
+        if (m_invalid)
+            throw new JsdiException("This context no longer exists.");
+        if (!m_atBreakpoint)
+            throw new JsdiException("Resumed context, can't get line number.");
+
+        try {
+            Context.enter();
+            return false;
+        } finally {
+            Context.exit();
+        }
+    }
+    //------------------------------------------------------
+    public boolean isFunctionContext() {
+        if (m_invalid)
+            throw new JsdiException("This context no longer exists.");
+        if (!m_atBreakpoint)
+            throw new JsdiException("Resumed context, can't get line number.");
+
+        try {
+            Context.enter();
+            return false;
+        } finally {
+            Context.exit();
+        }
+    }
+    //------------------------------------------------------
+    public boolean isScriptContext() {
+        if (m_invalid)
+            throw new JsdiException("This context no longer exists.");
+        if (!m_atBreakpoint)
+            throw new JsdiException("Resumed context, can't get line number.");
+        try {
+            Context.enter();
+            return true;
+        } finally {
+            Context.exit();
+        }
+    }
+    public Object lookupName(String name) {
+
+        try {
+            Context.enter();
+            Scriptable obj = m_variableObject;
+            Object prop;
+            while (obj != null) {
+                Scriptable m = obj;
+                do {
+                    Object result = m.get(name, obj);
+                    if (result != Scriptable.NOT_FOUND)
+                        return result;
+                    m = m.getPrototype();
+                } while (m != null);
+                obj = obj.getParentScope();
+            }
+            throw new JsdiException("Name is not in scope.");
+        } finally {
+            Context.exit();
+        }
+    }
+    /**
+     * Looks up a name in the scope chain and returns its value.
+     */
+    public Object lookupName(Scriptable scopeChain, String id) {
+
+        try {
+            Context.enter();
+            Scriptable obj = scopeChain;
+            Object prop;
+            while (obj != null) {
+                Scriptable m = obj;
+                do {
+                    Object result = m.get(id, obj);
+                    if (result != Scriptable.NOT_FOUND)
+                        return result;
+                    m = m.getPrototype();
+                } while (m != null);
+                obj = obj.getParentScope();
+            }
+            return null;
+        } finally {
+            Context.exit();
+        }
+    }
+}
+
+class RhinoDebugFrame implements DebugFrame {
+
+    JsContextStub m_stub;
+
+    RhinoDebugFrame(JsContextStub stub) {
+        m_stub = stub;
+    }
+
+    public void onEnter(Context cx, Scriptable activation,
+                        Scriptable thisObj, Object[] args)
+    {
+        m_stub.m_variableObject = activation;
+        m_stub.m_thisObj = thisObj;
+        m_stub.m_frameno = m_stub.m_rcp.m_frameStack.size();
+        m_stub.m_rcp.m_frameStack.push(m_stub);
+    }
+
+    public void onExit(Context cx, boolean byThrow, Object resultOrException)
+    {
+        m_stub.m_rcp.m_frameStack.pop();
+        m_stub.invalidate();
+    }
+
+    public void onExceptionThrown(Context cx, Throwable ex) {
+        m_stub.m_rcp.m_reDbg.handleExceptionThrown(cx, m_stub.m_rcp, ex);
+    }
+
+    public void onLineChange(Context cx, int lineNumber) {
+        m_stub.m_lineno = lineNumber;
+        if (m_stub.m_unit.hasBreakpoint(lineNumber)) {
+            m_stub.m_rcp.m_reDbg.handleBreakpointHit(cx, m_stub.m_rcp);
+        }
+    }
 }
Index: JsEngineStub.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/JsEngineStub.java,v
retrieving revision 1.2
diff -u -r1.2 JsEngineStub.java
--- JsEngineStub.java   7 Nov 2002 01:49:12 -0000       1.2
+++ JsEngineStub.java   14 Feb 2003 22:05:46 -0000
@@ -62,38 +62,37 @@
 import org.apache.bsf.debug.jsdi.*;
 import org.mozilla.javascript.Context;
 import org.mozilla.javascript.Script;
-import org.mozilla.javascript.debug.DebuggableEngine;
 
 /**
  * Insert the type's description here.
  * Creation date: (9/6/2001 1:21:46 PM)
  * @author: Administrator
  */
-public class JsEngineStub 
+public class JsEngineStub
     extends org.apache.bsf.debug.util.Skeleton
     implements JsEngine {
 
     RhinoEngineDebugger m_rhinoDbg;
     boolean m_inCallback;
     boolean m_resumeExecution;
-    Object  m_lock;    
-       
+    Object  m_lock;
+
     /**
      * JsEngineStub constructor comment.
      */
-    public JsEngineStub(RhinoEngineDebugger rhinoDbg) 
+    public JsEngineStub(RhinoEngineDebugger rhinoDbg)
         throws RemoteException {
         super(org.apache.bsf.debug.util.DebugConstants.JS_ENGINE_TID);
         m_rhinoDbg = rhinoDbg;
         m_lock = new Object();
     }
-       
+
     public boolean isSuspended() throws RemoteException {
         return m_inCallback;
     }
-       
+
     public boolean poll() { return true; }
-       
+
     public Object eval(String docname, String exp, int lineNo)
         throws RemoteException {
 
@@ -125,7 +124,7 @@
         try {
             Context.enter();
             count = m_rhinoDbg.getContextCount();
-            DebugLog.stdoutPrintln("   count = "+count, 
+            DebugLog.stdoutPrintln("    count = "+count,
                                    DebugLog.BSF_LOG_L3);
             return count;
         } finally {
@@ -133,7 +132,7 @@
         }
 
     }
-  
+
     public String getThread() throws RemoteException {
         return m_rhinoDbg.getThread();
     }
@@ -203,7 +202,7 @@
     public void stepIn() throws RemoteException {
         try {
             Context.enter();
-            DebugLog.stdoutPrintln("Step In command on "+this, 
+            DebugLog.stdoutPrintln("Step In command on "+this,
                                    DebugLog.BSF_LOG_L3);
             m_rhinoDbg.stepIn(this);
         } catch (Exception ex) {
@@ -225,7 +224,6 @@
     }
 
     public void stepOver() throws RemoteException {
-        RhinoContextProxy rcp;
         try {
             Context.enter();
             m_rhinoDbg.stepOver(this);
Index: RhinoContextProxy.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoContextProxy.java,v
retrieving revision 1.3
diff -u -r1.3 RhinoContextProxy.java
--- RhinoContextProxy.java      15 Jan 2003 08:15:14 -0000      1.3
+++ RhinoContextProxy.java      14 Feb 2003 22:05:46 -0000
@@ -70,133 +70,107 @@
 
 import java.rmi.RemoteException;
 
-public class RhinoContextProxy {
+class RhinoContextProxy {
 
     RhinoEngineDebugger m_reDbg;
-    Context m_context;
-    JsContextStub m_contextStub;
 
-    DebuggableEngine m_engine;
-
-    boolean m_atBreakpoint;
-    int m_frameCount;
-    JsContextStub m_frames[];
+    ObjArray m_frameStack = new ObjArray();
 
     private static final int NO_STEP = 0, STEP_IN = 1, STEP_OVER = 2,
         STEP_OUT = 3, STOP_ENGINE = 4, RUNNING = 5;
 
     private int m_stepCmd, m_stepDepth;
 
-    RhinoContextProxy(RhinoEngineDebugger reDbg, Context cx) {
+    RhinoContextProxy(RhinoEngineDebugger reDbg) {
         m_reDbg = reDbg;
-        m_context = cx;
-        m_engine = cx.getDebuggableEngine();
     }
 
-    public void cancelStepping() {
+    static RhinoContextProxy getCurrent() {
+        Context cx = Context.getCurrentContext();
+        if (cx == null) { return null; }
+        return (RhinoContextProxy)cx.getDebuggerContextData();
+    }
+
+    void cancelStepping() {
         m_stepCmd = NO_STEP;
         m_stepDepth = -1;
-        m_engine.setBreakNextLine(false);
     }
 
-    public JsContextStub getContext(int depth) {
-        return m_frames[depth];
+    int getContextCount() {
+        return m_frameStack.size();
     }
 
-    public int getContextCount() {
-        return m_frameCount;
+    JsContextStub getContextStub(int no) {
+        if (!(0 <= no && no < m_frameStack.size())) { return null; }
+        return (JsContextStub)m_frameStack.get(no);
     }
 
-    public JsContextStub getFrame(int no) {
-        if (no < 0 || no > m_frameCount)
-            return null;
-        if (no == m_frameCount)
-            return m_contextStub;
-        else
-            return m_frames[no];
+    JsContextStub getTopContextStub() {
+        return getContextStub(m_frameStack.size() - 1);
     }
 
-    public int getLineNumber() {
-        DebugFrame frame = m_engine.getFrame(0);
-
-        return frame.getLineNumber();
+    int getLineNumber() {
+        JsContextStub stub = getTopContextStub();
+        return stub.m_lineno;
     }
 
-    public RhinoEngineDebugger getRhinoEngineDebugger() {
+    RhinoEngineDebugger getRhinoEngineDebugger() {
         return m_reDbg;
     }
 
     String getSourceName() {
-        DebugFrame frame = m_engine.getFrame(0);
-
-        return frame.getSourceName();
+        JsContextStub stub = getTopContextStub();
+        return stub.m_unit.m_dbgScript.getSourceName();
     }
 
-
     // We hit a known breakpoint.
     // We need to update the stack.
     // Also, cancel any pending stepping operation.
-    public JsContextStub hitBreakpoint() throws RemoteException {
+    JsContextStub hitBreakpoint() throws RemoteException {
         cancelStepping();
-        updateStack();
-        return m_frames[0];
+        return getTopContextStub();
     }
 
-
-    public JsContextStub exceptionThrown() throws RemoteException {
+    JsContextStub exceptionThrown() throws RemoteException {
         cancelStepping();
-        updateStack();
-        return m_frames[0];
+        return getTopContextStub();
     }
 
-    public void resumed() {
-        JsContextStub stub;
-        DebugFrame frame;
-
-        m_atBreakpoint = false;
-
-        for (int f = 0; f < m_frameCount; f++) {
-            stub = m_frames[f];
-            stub.atBreakpoint(false);
+    void resumed() {
+        for (int f = 0, N = getContextCount(); f != N; ++f) {
+            getContextStub(f).atBreakpoint(false);
         }
     }
 
-    public void run() {
-        m_engine.setBreakNextLine(false);
+    void run() {
         m_stepCmd = RUNNING;
         m_stepDepth = -1;
-
     }
 
-    public void stepIn() {
-        m_engine.setBreakNextLine(true);
+    void stepIn() {
         m_stepCmd = STEP_IN;
-        m_stepDepth = m_frameCount;
+        m_stepDepth = getContextCount();
     }
 
-    public void stepOut() {
-        m_engine.setBreakNextLine(true);
+    void stepOut() {
         m_stepCmd = STEP_OUT;
-        m_stepDepth = m_frameCount;
-
+        m_stepDepth = getContextCount();
     }
 
-    public void stepOver() {
-        m_engine.setBreakNextLine(true);
+    void stepOver() {
         m_stepCmd = STEP_OVER;
-        m_stepDepth = m_frameCount;
+        m_stepDepth = getContextCount();
     }
 
-    public JsContextStub entry_exit_mode() throws RemoteException {
+    JsContextStub entry_exit_mode() throws RemoteException {
         cancelStepping();
-        updateStack();
-        return m_frames[0];
+        return getTopContextStub();
     }
 
-    public JsContextStub stepping() {
+    JsContextStub stepping() {
         // Did we hit a known breakpoint?
 
-        int frameCount = m_engine.getFrameCount();
+        int frameCount = getContextCount();
 
         try {
             switch (m_stepCmd) {
@@ -204,35 +178,31 @@
                 cancelStepping();
                 break;
             case STOP_ENGINE :
-                updateStack();
                 cancelStepping();
-                return m_frames[0];
+                return getTopContextStub();
             case STEP_IN :
-                // OG if ((frameCount == m_stepDepth + 1) || 
+                // OG if ((frameCount == m_stepDepth + 1) ||
                 // (frameCount == m_stepDepth)) {
                 // step if we are in the same frame (nothing to step in... :-)
                 // if we are in a called frame...
                 // but also if we stepped out of the current frame...
-                    updateStack();
                     cancelStepping();
-                    return m_frames[0];
+                    return getTopContextStub();
             case STEP_OVER :
                 // OG if (frameCount == m_stepDepth) {
                 // step if we are in the same frame or above...
-                // this basically avoids any children frame but 
+                // this basically avoids any children frame but
                 // covers the return of the current frame.
                 if (frameCount <= m_stepDepth) {
-                    updateStack();
                     cancelStepping();
-                    return m_frames[0];
+                    return getTopContextStub();
                 }
                 break;
             case STEP_OUT :
                 // OG if (frameCount == m_stepDepth - 1) {
                 if (frameCount < m_stepDepth) {
-                    updateStack();
                     cancelStepping();
-                    return m_frames[0];
+                    return getTopContextStub();
                 }
                 break;
             default :
@@ -245,51 +215,8 @@
         return null;
     }
 
-    public void stopEngine() {
-        m_engine.setBreakNextLine(true);
+    void stopEngine() {
         m_stepCmd = STOP_ENGINE;
         m_stepDepth = -1;
-    }
-
-    public void updateStack() throws RemoteException {
-        int nf, of, frameCount = m_engine.getFrameCount();
-        JsContextStub frames[] = new JsContextStub[frameCount];
-        DebugFrame frame;
-
-        m_atBreakpoint = true;
-
-        // scan the stacks from the outer frame down
-        // to the inner one of the shortest of the old
-        // and the new known stack.
-        // The goal is to recognize the DebugFrame objects
-        // that are the sames so that we can reuse the 
-        // stubs for those. 
-        // As soon as a DebugFrame object is found different,
-        // the rest of the stack is different, all the old
-        // stubs can be dropped and invalidated, new ones
-        // must be created.
-
-        for (nf = 0, of = 0;
-             nf < frameCount && of < m_frameCount;
-             nf++, of++) {
-            frame = m_engine.getFrame(nf);
-            if (frame == m_frames[of].m_frame) {
-                frames[nf] = m_frames[of];
-            } else
-                break;
-        }
-        // now drop all old frames that diverged.
-        // Also invalidate the frame stubs so to
-        // tracked that they are no longer valid.
-        for (; of < m_frameCount; of++) {
-            m_reDbg.dropStub(m_frames[of].m_frame);
-            m_frames[of].invalidate();
-        }
-        for (; nf < frameCount; nf++) {
-            frame = m_engine.getFrame(nf);
-            frames[nf] = new JsContextStub(this, frame, nf);
-        }
-        m_frames = frames;
-        m_frameCount = frameCount;
     }
 }
Index: RhinoEngineDebugger.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-bsf/src/bsf-2.3/bsf/src/org/apache/bsf/engines/javascript/RhinoEngineDebugger.java,v
retrieving revision 1.2
diff -u -r1.2 RhinoEngineDebugger.java
--- RhinoEngineDebugger.java    7 Nov 2002 01:49:12 -0000       1.2
+++ RhinoEngineDebugger.java    14 Feb 2003 22:05:47 -0000
@@ -74,24 +74,23 @@
 import org.apache.bsf.debug.*;
 import org.apache.bsf.debug.jsdi.*;
 
-public class RhinoEngineDebugger implements Debugger {
+class RhinoEngineDebugger implements Debugger {
 
     /** The global script object, where all embedded functions are defined,
      * as well as the standard ECMA "core" objects.
-     */        
+     */
     private Scriptable global;
     private JsObject globalstub;
 
-    private RhinoContextProxy m_rcp;
     private Scriptable undefined;
     private JsObject undefinedStub;
 
-    /** 
+    /**
      *  Hashtable allowing to find the stub for an object in the JavaScript
      *  environment if one exists.
      *  Typically: Scriptable, Function, Script, etc.
      *  This is not used for Context and DebugFrame.
-     *  They typically contains JsObject associated to 
+     *  They typically contains JsObject associated to
      *  org.mozilla.javascript.ScriptableObject
      */
     private Hashtable stubs;
@@ -102,16 +101,13 @@
     private FnOrScript m_compilingFnOrScript;
     private JavaScriptEngine m_eng;
 
-    private Thread m_thread;
-
     private Hashtable m_documents;
 
     BSFDebugManagerImpl dbgmgr;
 
-    public RhinoEngineDebugger(JavaScriptEngine eng) 
+    RhinoEngineDebugger(JavaScriptEngine eng)
         throws RemoteException {
         super();
-        m_thread = Thread.currentThread();
         m_eng = eng;
         dbgmgr = eng.getDebugManager();
 
@@ -127,45 +123,37 @@
     /**
      * Called when our debugger has been disconnected.
      */
-    public void disconnectedDebuggerNotify() {
+    void disconnectedDebuggerNotify() {
         m_callbacks = null;
     }
 
-    void addStub(Context cx, RhinoContextProxy jscx) {
-        stubs.put(cx, jscx);
-    }
-
-    void addStub(DebugFrame frame, JsContextStub stub) {
-        stubs.put(frame, stub);
-    }
-
     void addStub(Scriptable sobj, JsObject jsobj) {
         stubs.put(sobj, jsobj);
     }
 
-    void dropStub(Object key) {
+    void dropStub(Scriptable key) {
         stubs.remove(key);
     }
 
-    public synchronized DocumentCell getDocumentCell(String name) {
+    synchronized DocumentCell getDocumentCell(String name) {
         return (DocumentCell) m_documents.get(name);
     }
 
     // Called upon creation of a BSFManager.
-    public synchronized DocumentCell loadDocumentNotify(String name) {
+    synchronized DocumentCell loadDocumentNotify(String name) {
         DocumentCell cell;
 
         cell = (DocumentCell) m_documents.get(name);
         if (cell == null) {
             cell = new DocumentCell(this, name);
             m_documents.put(name, cell);
-            if (dbgmgr!=null) 
+            if (dbgmgr!=null)
                 dbgmgr.loadDocumentNotify(m_eng, name);
         }
         return cell;
     }
 
-    public synchronized void placeBreakpointAtLine(int brkptid,
+    synchronized void placeBreakpointAtLine(int brkptid,
                                                    String docname,
                                                    int lineno) {
 
@@ -174,7 +162,7 @@
         cell.addBreakpointAtLine(brkptid, lineno);
     }
 
-    public synchronized void placeBreakpointAtOffset(int brkptid,
+    synchronized void placeBreakpointAtOffset(int brkptid,
                                                      String docname,
                                                      int offset) {
 
@@ -183,7 +171,7 @@
         cell.addBreakpointAtOffset(brkptid, offset);
     }
 
-    public void removeBreakpoint(String docname, int brkptid)
+    void removeBreakpoint(String docname, int brkptid)
         throws BSFException {
 
         DocumentCell cell;
@@ -191,7 +179,7 @@
         cell.removeBreakpoint(brkptid);
     }
 
-    public void setEntryExit(String docname, boolean on)
+    void setEntryExit(String docname, boolean on)
         throws BSFException {
 
         DocumentCell cell;
@@ -199,7 +187,7 @@
         cell.setEntryExit(on);
     }
 
-    public Object eval(String docname, String fnOrScript, int lineno)
+    Object eval(String docname, String fnOrScript, int lineno)
         throws RemoteException {
         Object retval;
         try {
@@ -210,13 +198,15 @@
         }
     }
 
-    public JsContext getContext(int depth) {
-        if (m_rcp != null) return m_rcp.getContext(depth);
+    JsContext getContext(int depth) {
+        RhinoContextProxy rcp = RhinoContextProxy.getCurrent();
+        if (rcp != null) return rcp.getContextStub(depth);
         return null;
     }
 
-    public int getContextCount() {
-        if (m_rcp != null) return m_rcp.getContextCount();
+    int getContextCount() {
+        RhinoContextProxy rcp = RhinoContextProxy.getCurrent();
+        if (rcp != null) return rcp.getContextCount();
         return -1;
     }
 
@@ -224,24 +214,20 @@
      * Return the current debugger.
      * @return the debugger, or null if none is attached.
      */
-    public JsCallbacks getDebugger() {
+    JsCallbacks getDebugger() {
         return m_callbacks;
     }
 
-    public Object getDebugInterface() {
+    Object getDebugInterface() {
         return engineStub;
     }
 
-    public JsObject getGlobalObject() {
+    JsObject getGlobalObject() {
         return globalstub;
     }
 
-    public RhinoContextProxy getRhinoContextProxy() {
-        return m_rcp;
-    }
-
     RhinoContextProxy getStub(Context cx) {
-        return (RhinoContextProxy) stubs.get(cx);
+        return (RhinoContextProxy)cx.getDebuggerContextData();
     }
 
     JsContextStub getStub(DebugFrame frame) {
@@ -252,19 +238,20 @@
         return (JsObject) stubs.get(sobj);
     }
 
-    public JsObject getUndefinedValue() {
+    JsObject getUndefinedValue() {
         return undefinedStub;
     }
 
-    public String getThread() {
+    String getThread() {
+        Context cx = Context.getCurrentContext();
         String resultstr = "";
 
-        if (m_thread != null) {
+        if (cx != null) {
             try {
                 final String resultstrf = (String)
                 AccessController.doPrivileged(new PrivilegedExceptionAction() {
                         public Object run() throws Exception {
-                            return m_thread.getName();
+                            return Thread.currentThread().getName();
                         }
                     });
             resultstr = resultstrf;
@@ -277,15 +264,17 @@
         return resultstr;
     }
 
-    public String getThreadGroup() {
+    String getThreadGroup() {
+        Context cx = Context.getCurrentContext();
         String resultstr = "";
 
-        if (m_thread != null) {
+        if (cx != null) {
             try {
                 final String resultstrf = (String)
                 AccessController.doPrivileged(new PrivilegedExceptionAction() {
                         public Object run() throws Exception {
-                            return m_thread.getThreadGroup().getName();
+                            return Thread.currentThread().getThreadGroup().
+                                        getName();
                         }
                     });
             resultstr = resultstrf;
@@ -305,7 +294,7 @@
     // to implement STEP_IN, STEP_OUT, and STEP_OVER.
     //---------------------------------------------------------
 
-    public void handleBreakpointHit(Context cx) {
+    void handleBreakpointHit(Context cx, RhinoContextProxy rcp) {
         JsCallbacks debugger;
         BreakPoint bp;
         Enumeration e;
@@ -313,48 +302,41 @@
         boolean breakpointFound=false;
         String name;
         int lineno;
-        boolean suspend=false;
-               
-        m_thread = Thread.currentThread();
-        DebugLog.stdoutPrintln("**** Handling a breakpoint hit...", 
+
+        DebugLog.stdoutPrintln("**** Handling a breakpoint hit...",
                                DebugLog.BSF_LOG_L3);
-        m_rcp = getStub(cx);
-        if (m_rcp == null) {
-            m_rcp = new RhinoContextProxy(this, cx);
-            addStub(cx, m_rcp);
-        }
-        // if we have no callbacks... then just 
+        // if we have no callbacks... then just
         // ignore the breakpoint hit, do a run
         // so that execution resumes...
         if (m_callbacks==null) {
-            DebugLog.stdoutPrintln("   No callbacks, resuming...", 
DebugLog.BSF_LOG_L3);
-            m_rcp.run();
+            DebugLog.stdoutPrintln("    No callbacks, resuming...", 
DebugLog.BSF_LOG_L3);
+            rcp.run();
 
         } else {
             // First, check that we didn't hit a known breakpoint.
             // First, search if we have breakpoints for the current documents
 
-            name = m_rcp.getSourceName();
-            lineno = m_rcp.getLineNumber();
+            name = rcp.getSourceName();
+            lineno = rcp.getLineNumber();
 
-            DebugLog.stdoutPrintln("   in "+name+" at "+lineno, DebugLog.BSF_LOG_L3);
+            DebugLog.stdoutPrintln("    in "+name+" at "+lineno, DebugLog.BSF_LOG_L3);
 
             cell = getDocumentCell(name);
-            if (cell != null) 
-                _handleBreakpointHit(cell,lineno);
-        } 
-        m_rcp = null;
+            if (cell != null)
+                _handleBreakpointHit(rcp,cell,lineno);
+        }
     }
 
-    public void _handleBreakpointHit(DocumentCell cell, int lineno) {
-
+    void _handleBreakpointHit(RhinoContextProxy rcp,
+                              DocumentCell cell, int lineno)
+    {
         JsCallbacks debugger;
         BreakPoint bp;
         Enumeration e;
         JsContext stub=null;
         boolean breakpointFound=false;
         boolean suspend=false;
-               
+
         try {
             bp = cell.findBreakpointAtLine(lineno);
         } catch (BSFException bsfex) {
@@ -363,19 +345,19 @@
         if (bp != null) {
             breakpointFound = true;
             try {
-                stub = m_rcp.hitBreakpoint();
-                DebugLog.stdoutPrintln("       breakpoint callback...", 
DebugLog.BSF_LOG_L3);
-               m_callbacks.createFuture(m_rcp);
+                stub = rcp.hitBreakpoint();
+                DebugLog.stdoutPrintln("    breakpoint callback...", 
DebugLog.BSF_LOG_L3);
+                 m_callbacks.createFuture(rcp);
                 m_callbacks.handleBreakpointHit(stub);
                 suspend = true;
             } catch (RemoteException rex) {
-                DebugLog.stderrPrintln("       EXCEPTION OCCURED DURING BREAKPOINT 
CALLBACK", DebugLog.BSF_LOG_L0);                            
+                DebugLog.stderrPrintln("    EXCEPTION OCCURED DURING BREAKPOINT 
CALLBACK", DebugLog.BSF_LOG_L0);
                 DebugLog.stderrPrintln(rex.getMessage(), DebugLog.BSF_LOG_L0);
                 rex.printStackTrace();
                 suspend = false;
             }
         } else {
-            DebugLog.stdoutPrintln("   didn't find a breakpoint...", 
DebugLog.BSF_LOG_L3);
+            DebugLog.stdoutPrintln("    didn't find a breakpoint...", 
DebugLog.BSF_LOG_L3);
             breakpointFound = false;
         }
 
@@ -384,87 +366,107 @@
             // line in the current document, we must be stepping
             // or in entry/exit mode
             try {
-                stub = m_rcp.stepping();
+                stub = rcp.stepping();
                 FnOrScript current = cell.findFnOrScriptContaining(lineno);
                 if (stub != null) {
                     cell.setLastFnOrScript(current);
-                    DebugLog.stdoutPrintln("   stepping-done callback...", 
+                    DebugLog.stdoutPrintln("    stepping-done callback...",
                                            DebugLog.BSF_LOG_L3);
-                       m_callbacks.createFuture(m_rcp);
+                    m_callbacks.createFuture(rcp);
                     m_callbacks.handleSteppingDone(stub);
                     suspend = true;
-                } 
+                }
                 else if (cell.getEntryExit() &&
                          (current != cell.getLastFnOrScript()) &&
-                         (m_rcp.getContextCount() == 0)) {
+                         (rcp.getContextCount() == 0)) {
                     cell.setLastFnOrScript(current);
-                    stub = m_rcp.entry_exit_mode();
-                    DebugLog.stdoutPrintln("    entry/exit mode...", 
+                    stub = rcp.entry_exit_mode();
+                    DebugLog.stdoutPrintln("    entry/exit mode...",
                                            DebugLog.BSF_LOG_L3);
-                       m_callbacks.createFuture(m_rcp);
+                    m_callbacks.createFuture(rcp);
                     m_callbacks.handleSteppingDone(stub);
                     suspend = true;
                 }
                 else {
-                    DebugLog.stdoutPrintln("   No reason to suspend execution.", 
DebugLog.BSF_LOG_L3);                         
+                    DebugLog.stdoutPrintln("    No reason to suspend execution.", 
DebugLog.BSF_LOG_L3);
                     suspend = false;
                 }
             } catch (RemoteException rex) {
-                DebugLog.stderrPrintln("       EXCEPTION OCCURED DURING STEPPING-DONE 
CALLBACK", DebugLog.BSF_LOG_L0);                         
+                DebugLog.stderrPrintln("    EXCEPTION OCCURED DURING STEPPING-DONE 
CALLBACK", DebugLog.BSF_LOG_L0);
                 DebugLog.stderrPrintln(rex.getMessage(), DebugLog.BSF_LOG_L0);
                 rex.printStackTrace();
                 suspend = false;
             }
         }
         if (suspend) {
-            // now, suspend this thread... until 
+            // now, suspend this thread... until
             // we restart.
             try {
-                m_callbacks.suspendFuture(m_rcp);
+                m_callbacks.suspendFuture(rcp);
             } catch (Exception ex) {
                 DebugLog.stdoutPrintln("Future creation failed... releasing the 
engine", DebugLog.BSF_LOG_L3);
-                m_rcp.run();
+                rcp.run();
             }
-        }                      
+        }
     }
 
-    public void run(JsEngineStub eng) throws Exception {
+    void run(JsEngineStub eng) throws Exception {
         DebugLog.stdoutPrintln("RhinoEngineDebugger::run()...",
                                DebugLog.BSF_LOG_L3);
-        m_rcp.run(); 
-        m_callbacks.completeFuture(m_rcp);
+        RhinoContextProxy rcp = RhinoContextProxy.getCurrent();
+        rcp.run();
+        m_callbacks.completeFuture(rcp);
     }
 
-    public void stepIn(JsEngineStub eng) throws Exception {
+    void stepIn(JsEngineStub eng) throws Exception {
         DebugLog.stdoutPrintln("RhinoEngineDebugger::stepIn()...",
                                DebugLog.BSF_LOG_L3);
-        m_rcp.stepIn();
-        m_callbacks.completeFuture(m_rcp);
+        RhinoContextProxy rcp = RhinoContextProxy.getCurrent();
+        rcp.stepIn();
+        m_callbacks.completeFuture(rcp);
     }
 
-    public void stepOut(JsEngineStub eng) throws Exception {
+    void stepOut(JsEngineStub eng) throws Exception {
         DebugLog.stdoutPrintln("RhinoEngineDebugger::stepOut()...",
                                DebugLog.BSF_LOG_L3);
-        m_rcp.stepOut();
-        m_callbacks.completeFuture(m_rcp);
+        RhinoContextProxy rcp = RhinoContextProxy.getCurrent();
+        rcp.stepOut();
+        m_callbacks.completeFuture(rcp);
     }
-    public void stepOver(JsEngineStub eng) throws Exception {
+    void stepOver(JsEngineStub eng) throws Exception {
 
         DebugLog.stdoutPrintln("RhinoEngineDebugger::stepOver()...",
                                DebugLog.BSF_LOG_L3);
-        m_rcp.stepOver();
-        m_callbacks.completeFuture(m_rcp);
+        RhinoContextProxy rcp = RhinoContextProxy.getCurrent();
+        rcp.stepOver();
+        m_callbacks.completeFuture(rcp);
     }
-       
+
     public void handleCompilationDone(Context cx,
                                       DebuggableScript fnOrScript,
-                                      StringBuffer source) {
+                                      String source) {
 
-        m_thread = Thread.currentThread();
         m_compilingFnOrScript.addCompilationUnit(cx, fnOrScript, source);
     }
 
-    public void handleExceptionThrown(Context cx, Object exceptionThrown) {
+    public DebugFrame getFrame(Context cx, DebuggableScript fnOrScript) {
+        CompilationUnit unit;
+        unit = m_compilingFnOrScript.getCompilationUnit(fnOrScript);
+        RhinoContextProxy rcp = getStub(cx);
+        try {
+            JsContextStub stub = new JsContextStub(rcp, unit);
+            return stub.getRhinoDebugFrame();
+        } catch (RemoteException rex) {
+            DebugLog.stderrPrintln("    EXCEPTION OCCURED DURING FRAME 
INITIALIZATION", DebugLog.BSF_LOG_L0);
+            DebugLog.stderrPrintln(rex.getMessage(), DebugLog.BSF_LOG_L0);
+            rex.printStackTrace();
+            return null;
+        }
+    }
+
+    void handleExceptionThrown(Context cx, RhinoContextProxy rcp,
+                               Throwable exceptionThrown)
+    {
         JsContext stub;
         JsCallbacks debugger;
         BreakPoint bp;
@@ -473,53 +475,40 @@
         String name,msg;
         Exception ex;
         int lineno;
-        NativeError error;
-               
-        m_thread = Thread.currentThread();
-        m_rcp = getStub(cx);
-        if (m_rcp == null) {
-            m_rcp = new RhinoContextProxy(this, cx);
-            addStub(cx, m_rcp);
+
+        // if we have no callbacks... then just
+        // ignore the breakpoint hit, do a run
+        // so that execution resumes...
+        if (m_callbacks==null) {
+            rcp.run();
+            return;
         }
-        try {
-            // if we have no callbacks... then just 
-            // ignore the breakpoint hit, do a run
-            // so that execution resumes...
-            if (m_callbacks==null) {
-                m_rcp.run();
-                return;
-            }
 
-            // First, check that we didn't hit a known breakpoint.
-            // First, search if we have breakpoints for the current documents
-            name = m_rcp.getSourceName();
-            lineno = m_rcp.getLineNumber();
-            try {
-                error = (NativeError)exceptionThrown;
-                msg = error.getName() + ": " + error.getMessage();
-            } catch (ClassCastException ccex) {
-                msg = "Unknown JavaScript Exception";
-            }
-            ex = new Exception(msg);
+        // First, check that we didn't hit a known breakpoint.
+        // First, search if we have breakpoints for the current documents
+        name = rcp.getSourceName();
+        lineno = rcp.getLineNumber();
+        if (exceptionThrown instanceof EcmaError) {
+            msg = ((EcmaError)exceptionThrown).getErrorObject().toString();
+        } else {
+            msg = exceptionThrown.toString();
+        }
+        ex = new Exception(msg);
 
-            cell = getDocumentCell(name);
-            if (cell == null) return;
+        cell = getDocumentCell(name);
+        if (cell == null) return;
 
-            try {
-                stub = m_rcp.exceptionThrown();        
-                m_callbacks.createFuture(m_rcp);
-                m_callbacks.handleExceptionThrown(stub,ex);
-                               
-                // now, suspend this thread... until 
-                // we restart.
-                m_callbacks.suspendFuture(m_rcp);
-                               
-            } catch (Exception ex2) {
-                m_rcp.run();
-                               
-            }
-        } finally {
-            m_rcp = null;
+        try {
+            stub = rcp.exceptionThrown();
+            m_callbacks.createFuture(rcp);
+            m_callbacks.handleExceptionThrown(stub,ex);
+
+            // now, suspend this thread... until
+            // we restart.
+            m_callbacks.suspendFuture(rcp);
+
+        } catch (Exception ex2) {
+            rcp.run();
         }
     }
 
@@ -568,10 +557,10 @@
      * The engine will call the attached debugger's handleBreakpointHit
      * method on the next line it executes if isLineStep is true.
      * May be used from another thread to interrupt execution.
-     * 
+     *
      * @param isLineStep if true, break next line
      */
-    public void setBreakNextLine(JsContext context, boolean isLineStep) {
+    void setBreakNextLine(JsContext context, boolean isLineStep) {
     }
 
     void setCompilingFnOrScript(FnOrScript fnOrScript) {
@@ -583,7 +572,7 @@
      * @param debugger the debugger to be used on callbacks from
      * the engine.
      */
-    public void setDebugger(JsCallbacks debugger) {
+    void setDebugger(JsCallbacks debugger) {
         m_callbacks = debugger;
     }
 }
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to