41 import jdk.dynalink.beans.BeansLinker; |
41 import jdk.dynalink.beans.BeansLinker; |
42 import jdk.dynalink.beans.StaticClass; |
42 import jdk.dynalink.beans.StaticClass; |
43 import jdk.dynalink.linker.support.TypeUtilities; |
43 import jdk.dynalink.linker.support.TypeUtilities; |
44 import jdk.nashorn.api.scripting.JSObject; |
44 import jdk.nashorn.api.scripting.JSObject; |
45 import jdk.nashorn.api.scripting.ScriptObjectMirror; |
45 import jdk.nashorn.api.scripting.ScriptObjectMirror; |
|
46 import jdk.nashorn.api.scripting.ScriptUtils; |
46 import jdk.nashorn.internal.objects.annotations.Attribute; |
47 import jdk.nashorn.internal.objects.annotations.Attribute; |
47 import jdk.nashorn.internal.objects.annotations.Function; |
48 import jdk.nashorn.internal.objects.annotations.Function; |
48 import jdk.nashorn.internal.objects.annotations.ScriptClass; |
49 import jdk.nashorn.internal.objects.annotations.ScriptClass; |
49 import jdk.nashorn.internal.objects.annotations.Where; |
50 import jdk.nashorn.internal.objects.annotations.Where; |
50 import jdk.nashorn.internal.runtime.Context; |
51 import jdk.nashorn.internal.runtime.Context; |
428 @Function(attributes = Attribute.NOT_ENUMERABLE, where = Where.CONSTRUCTOR) |
429 @Function(attributes = Attribute.NOT_ENUMERABLE, where = Where.CONSTRUCTOR) |
429 public static NativeArray from(final Object self, final Object objArray) { |
430 public static NativeArray from(final Object self, final Object objArray) { |
430 if (objArray == null) { |
431 if (objArray == null) { |
431 return null; |
432 return null; |
432 } else if (objArray instanceof Collection) { |
433 } else if (objArray instanceof Collection) { |
433 return new NativeArray(((Collection<?>)objArray).toArray()); |
434 return new NativeArray(ScriptUtils.unwrapArray(((Collection<?>)objArray).toArray())); |
434 } else if (objArray instanceof Object[]) { |
435 } else if (objArray instanceof Object[]) { |
435 return new NativeArray(((Object[])objArray).clone()); |
436 return new NativeArray(ScriptUtils.unwrapArray(((Object[])objArray).clone())); |
436 } else if (objArray instanceof int[]) { |
437 } else if (objArray instanceof int[]) { |
437 return new NativeArray(((int[])objArray).clone()); |
438 return new NativeArray(((int[])objArray).clone()); |
438 } else if (objArray instanceof double[]) { |
439 } else if (objArray instanceof double[]) { |
439 return new NativeArray(((double[])objArray).clone()); |
440 return new NativeArray(((double[])objArray).clone()); |
440 } else if (objArray instanceof long[]) { |
441 } else if (objArray instanceof long[]) { |