зеркало из https://github.com/mozilla/pjs.git
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:
Родитель
dc28172d56
Коммит
94baf79063
|
@ -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:
|
||||
|
|
Загрузка…
Ссылка в новой задаче