src/jdk/nashorn/internal/runtime/ListAdapter.java
Print this page
*** 31,40 ****
--- 31,41 ----
import java.util.ListIterator;
import java.util.NoSuchElementException;
import java.util.RandomAccess;
import java.util.concurrent.Callable;
import jdk.nashorn.api.scripting.JSObject;
+ import jdk.nashorn.api.scripting.ScriptObjectMirror;
import jdk.nashorn.internal.runtime.linker.Bootstrap;
import jdk.nashorn.internal.runtime.linker.InvokeByName;
/**
* An adapter that can wrap any ECMAScript Array-like object (that adheres to the array rules for the property
*** 133,143 ****
* @param obj script object to wrap as a ListAdapter
* @return A ListAdapter wrapper object
*/
public static ListAdapter create(final Object obj) {
if (obj instanceof ScriptObject) {
! return new ScriptObjectListAdapter((ScriptObject)obj);
} else if (obj instanceof JSObject) {
return new JSObjectListAdapter((JSObject)obj);
} else {
throw new IllegalArgumentException("ScriptObject or JSObject expected");
}
--- 134,145 ----
* @param obj script object to wrap as a ListAdapter
* @return A ListAdapter wrapper object
*/
public static ListAdapter create(final Object obj) {
if (obj instanceof ScriptObject) {
! final Object mirror = ScriptObjectMirror.wrap(obj, Context.getGlobal());
! return new JSObjectListAdapter((JSObject)mirror);
} else if (obj instanceof JSObject) {
return new JSObjectListAdapter((JSObject)obj);
} else {
throw new IllegalArgumentException("ScriptObject or JSObject expected");
}