Fix for 305323: Rhino fails to select the appropriate overloaded method

This was due to a bug where code deviated from the section 3.3.6.1 of the LC3 specification. This commit makes the code compliant with the referenced spec section.
This commit is contained in:
szegedia%freemail.hu 2005-08-21 13:29:32 +00:00
Родитель dc28172d56
Коммит 94baf79063
1 изменённых файлов: 7 добавлений и 9 удалений

Просмотреть файл

@ -340,6 +340,13 @@ WrapFactory#wrap(Context cx, Scriptable scope, Object obj, Class)}
case JSTYPE_JAVA_OBJECT:
case JSTYPE_JAVA_ARRAY:
Object javaObj = fromObj;
if (javaObj instanceof Wrapper) {
javaObj = ((Wrapper)javaObj).unwrap();
}
if (to.isInstance(javaObj)) {
return CONVERSION_NONTRIVIAL;
}
if (to == ScriptRuntime.StringClass) {
return 2;
}
@ -347,15 +354,6 @@ WrapFactory#wrap(Context cx, Scriptable scope, Object obj, Class)}
return (fromCode == JSTYPE_JAVA_ARRAY)
? CONVERSION_NONTRIVIAL : 2 + getSizeRank(to);
}
else {
Object javaObj = fromObj;
if (javaObj instanceof Wrapper) {
javaObj = ((Wrapper)javaObj).unwrap();
}
if (to.isInstance(javaObj)) {
return CONVERSION_NONTRIVIAL;
}
}
break;
case JSTYPE_OBJECT: