src/jdk/nashorn/internal/runtime/arrays/ArrayLikeIterator.java

Print this page

        

@@ -24,10 +24,11 @@
  */
 
 package jdk.nashorn.internal.runtime.arrays;
 
 import java.util.Iterator;
+import jdk.nashorn.api.scripting.ScriptObjectMirror;
 import jdk.nashorn.internal.runtime.JSType;
 import jdk.nashorn.internal.runtime.ScriptObject;
 
 /**
  * Superclass for array iterators

@@ -123,10 +124,14 @@
         obj = JSType.toScriptObject(obj);
         if (obj instanceof ScriptObject) {
             return new MapIterator((ScriptObject)obj, includeUndefined);
         }
 
+        if (obj instanceof ScriptObjectMirror) {
+            return new ScriptObjectMirrorIterator((ScriptObjectMirror)obj, includeUndefined);
+        }
+
         return new EmptyArrayLikeIterator();
     }
 
     /**
      * ArrayLikeIterator factory (reverse order)

@@ -144,10 +149,14 @@
         obj = JSType.toScriptObject(obj);
         if (obj instanceof ScriptObject) {
             return new ReverseMapIterator((ScriptObject)obj, includeUndefined);
         }
 
+        if (obj instanceof ScriptObjectMirror) {
+            return new ReverseScriptObjectMirrorIterator((ScriptObjectMirror)obj, includeUndefined);
+        }
+
         assert !obj.getClass().isArray();
 
         return new EmptyArrayLikeIterator();
     }