From ae1aa70fdf2bfb38219c7cb5dedb2c433def7533 Mon Sep 17 00:00:00 2001 From: hns Date: Tue, 9 Dec 2003 16:34:05 +0000 Subject: [PATCH] * If a script function returns an instance of org.mozilla.javascript.Wrapper always unwrap it before processing/returning. * If a script function returns null or undefined, return null even when invoke() was called in XML-RPC mode. --- src/helma/scripting/rhino/RhinoEngine.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/helma/scripting/rhino/RhinoEngine.java b/src/helma/scripting/rhino/RhinoEngine.java index c4630111..f7d65577 100644 --- a/src/helma/scripting/rhino/RhinoEngine.java +++ b/src/helma/scripting/rhino/RhinoEngine.java @@ -262,12 +262,14 @@ public class RhinoEngine implements ScriptingEngine { Object retval = ((Function) f).call(context, global, eso, args); - if (xmlrpc) { - return core.processXmlRpcResponse (retval); - } else if ((retval == null) || (retval == Undefined.instance)) { + if (retval instanceof Wrapper) { + retval = ((Wrapper) retval).unwrap(); + } + + if ((retval == null) || (retval == Undefined.instance)) { return null; - } else if (retval instanceof Wrapper) { - return ((Wrapper) retval).unwrap(); + } else if (xmlrpc) { + return core.processXmlRpcResponse (retval); } else { return retval; }