You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/08/03 15:51:21 UTC

svn commit: r227223 - /cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/LocationTrackingDebugger.java

Author: sylvain
Date: Wed Aug  3 06:51:19 2005
New Revision: 227223

URL: http://svn.apache.org/viewcvs?rev=227223&view=rev
Log:
Yikes! The Debugger API is different in Rhino+cont and Rhino 1.6!

Modified:
    cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/LocationTrackingDebugger.java

Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/LocationTrackingDebugger.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/LocationTrackingDebugger.java?rev=227223&r1=227222&r2=227223&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/LocationTrackingDebugger.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/LocationTrackingDebugger.java Wed Aug  3 06:51:19 2005
@@ -21,7 +21,6 @@
 import org.apache.cocoon.ProcessingException;
 import org.apache.cocoon.util.location.Location;
 import org.mozilla.javascript.Context;
-import org.mozilla.javascript.EcmaError;
 import org.mozilla.javascript.JavaScriptException;
 import org.mozilla.javascript.NativeFunction;
 import org.mozilla.javascript.Scriptable;
@@ -44,15 +43,36 @@
     private List locations;
     private Throwable throwable;
 
+    /**
+     * Rhino+cont API
+     */
     public void handleCompilationDone(Context cx, DebuggableScript fnOrScript, StringBuffer source) {
-        // nothing special here
+        // ignore
     }
 
+    /**
+     * Rhino+cont API
+     */
     public DebugFrame enterFrame(Context cx, Scriptable scope, Scriptable thisObj, Object[] args, DebuggableScript fnOrScript) {
         return new StackTrackingFrame(fnOrScript);
     }
     
     /**
+     * Rhino 1.6 API
+     */
+    public void handleCompilationDone(Context cx, DebuggableScript fnOrScript, String source) {
+        // nothing
+    }
+
+    /**
+     * Rhino 1.6 API
+     */
+    public DebugFrame getFrame(Context cx, DebuggableScript fnOrScript) {
+        // Rhion 1.6 API
+        return new StackTrackingFrame(fnOrScript);
+    }
+
+    /**
      * Get an exception that reflects the known location stack
      *
      * @param description a description for the exception
@@ -91,21 +111,32 @@
             this.script = script;
         }
         
+        public void onEnter(Context cx, Scriptable activation, Scriptable thisObj, Object[] args) {
+            // Rhino 1.6 specific
+        }
+        
+        // Rhino+cont API
         public void onLineChange(Context cx, int lineNumber, boolean breakpoint) {
             line = lineNumber;
         }
 
+        // Rhino 1.6 API
+        public void onLineChange(Context cx, int lineNumber) {
+            line = lineNumber;
+        }
+
         public void onExceptionThrown(Context cx, Throwable ex) {
             throwable = ex;
         }
 
         public void onExit(Context cx, boolean byThrow, Object resultOrException) {
             if (byThrow) {
-                Scriptable obj = script.getScriptable();
-                String name = obj instanceof NativeFunction ? ((NativeFunction)obj).getFunctionName() : "Top-level script";
-                if (name == null || name.length() == 0) {
-                    name = "[unnamed]";
-                }
+// Revisit: Rhino+cont and Rhino 1.6 have different debugger APIs, and we currently don't use this information
+//                Scriptable obj = script.getScriptable();
+//                String name = obj instanceof NativeFunction ? ((NativeFunction)obj).getFunctionName() : "Top-level script";
+//                if (name == null || name.length() == 0) {
+//                    name = "[unnamed]";
+//                }
 
                 if (locations == null) {
                     locations = new ArrayList(1); // start small