if (isNativeObject) {
unwrapped = unwrap(value);
if (unwrapped != value && type.isInstance(unwrapped))
return unwrapped;
}
ArgumentReader reader = null;
if (ArgumentReader.canConvert(type)
&& (reader = getArgumentReader(value)) != null) {
return ArgumentReader.convert(reader, unwrapped, type, this);
} else if (isNativeObject) {
Constructor ctor = getZeroArgumentConstructor(type);