From b0ae8632a6302f83160c3736a9e8046498c5409e Mon Sep 17 00:00:00 2001 From: "hannes%helma.at" Date: Fri, 14 Nov 2008 13:52:29 +0000 Subject: [PATCH] Fix bug 462827: Do not wrap JavaAdapter if it implements o.m.j.Scriptable git-svn-id: svn://10.0.0.236/trunk@255039 18797224-902f-48f8-a5cc-f745e15eee43 --- .../rhino/src/org/mozilla/javascript/JavaAdapter.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/JavaAdapter.java b/mozilla/js/rhino/src/org/mozilla/javascript/JavaAdapter.java index be1b3630c74..76ef9e90a37 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/JavaAdapter.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/JavaAdapter.java @@ -204,7 +204,15 @@ public final class JavaAdapter implements IdFunctionCall try { Object adapter = adapterClass.getConstructor(ctorParms). newInstance(ctorArgs); - return getAdapterSelf(adapterClass, adapter); + Object self = getAdapterSelf(adapterClass, adapter); + // Return unwrapped JavaAdapter if it implements Scriptable + if (self instanceof Wrapper) { + Object unwrapped = ((Wrapper) self).unwrap(); + if (unwrapped instanceof Scriptable) { + return unwrapped; + } + } + return self; } catch (Exception ex) { throw Context.throwAsScriptRuntimeEx(ex); }