coliver     2003/03/02 15:38:35

  Modified:    src/java/org/apache/cocoon/components/flow/javascript
                        JavaScriptInterpreter.java
  Log:
  register ScriptablePropertyHandler with JXPath and fixed parameter conversion
  
  Revision  Changes    Path
  1.21      +10 -6     
xml-cocoon2/src/java/org/apache/cocoon/components/flow/javascript/JavaScriptInterpreter.java
  
  Index: JavaScriptInterpreter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/flow/javascript/JavaScriptInterpreter.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- JavaScriptInterpreter.java        28 Feb 2003 03:23:34 -0000      1.20
  +++ JavaScriptInterpreter.java        2 Mar 2003 23:38:35 -0000       1.21
  @@ -77,7 +77,10 @@
   import org.mozilla.javascript.JavaScriptException;
   import org.mozilla.javascript.tools.debugger.ScopeProvider;
   import org.apache.commons.jxpath.ri.JXPathContextReferenceImpl;
  +import org.apache.commons.jxpath.JXPathIntrospector;
  +
   import org.apache.excalibur.source.Source;
  +
   /**
    * Interface with the JavaScript interpreter.
    *
  @@ -153,7 +156,10 @@
   
       Context context = Context.enter();
       context.setOptimizationLevel(OPTIMIZATION_LEVEL);
  +    context.setGeneratingDebug(true);
       // add support for Rhino objects to JXPath
  +    JXPathIntrospector.registerDynamicClass(org.mozilla.javascript.Scriptable.class,
  +                                    ScriptablePropertyHandler.class);
       JXPathContextReferenceImpl.addNodePointerFactory(new 
ScriptablePointerFactory());
   
       try {
  @@ -284,8 +290,8 @@
       throws Exception
     {
       Context context = Context.enter();
  -    context.setGeneratingDebug(true);
       context.setOptimizationLevel(OPTIMIZATION_LEVEL);
  +    context.setGeneratingDebug(true);
       context.setCompileFunctionsWithDynamicScope(true);
       context.setErrorReporter(errorReporter);
       Scriptable thrScope = null;
  @@ -511,18 +517,16 @@
   
         int size = (params != null ? params.size() : 0);
         Object[] funArgs = new Object[size];
  -      NativeArray funArgsArray = new NativeArray(funArgs);
         NativeArray parameters = new NativeArray(size);
  -
         if (size != 0) {
           for (int i = 0; i < size; i++) {
             Interpreter.Argument arg = (Interpreter.Argument)params.get(i);
  -          funArgs[i] = ScriptRuntime.toObject(context, thrScope, arg.value);
  +       funArgs[i] = arg.value;
             parameters.put(arg.name, parameters, arg.value);
           }
         }
  -
         cocoon.setParameters(parameters);
  +      NativeArray funArgsArray = new NativeArray(funArgs);
         Object callFunArgs[] = { fun, funArgsArray };
         ((Function) callFunction).call(context, thrScope, thrScope, callFunArgs);
       }
  @@ -563,8 +567,8 @@
       }
   
       Context context = Context.enter();
  -    context.setGeneratingDebug(true);
       context.setOptimizationLevel(OPTIMIZATION_LEVEL);
  +    context.setGeneratingDebug(true);
       context.setCompileFunctionsWithDynamicScope(true);
   
       // Obtain the JS continuation object from it, and setup the
  
  
  

Reply via email to