X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fibex%2Fjs%2FJSArray.java;fp=src%2Forg%2Fibex%2Fjs%2FJSArray.java;h=2171e4dd259bd23f7508135c519675a64e0aeac0;hb=e471904257ff52be6a0b77cd5946cb4219e36da5;hp=305a5de95628cbd898312bc46f7d0ba843513ce5;hpb=14dcf4ac275ea25af9e7bb517e61a82d2b935d0d;p=org.ibex.core.git diff --git a/src/org/ibex/js/JSArray.java b/src/org/ibex/js/JSArray.java index 305a5de..2171e4d 100644 --- a/src/org/ibex/js/JSArray.java +++ b/src/org/ibex/js/JSArray.java @@ -95,6 +95,7 @@ public class JSArray extends JS.BT { if(i > oldSize) setSize(i); insertElementAt(val,i); } + return; } if(isString(key)) { if (JS.toString(key).equals("length")) { @@ -105,14 +106,12 @@ public class JSArray extends JS.BT { super.put(key,val); } - // FIXME: Needs to include super's keys - public Enumeration keys() { - return new Enumeration() { - private int n = size(); - public boolean hasMoreElements() { return n > 0; } - public Object nextElement() { - if(n == 0) throw new NoSuchElementException(); - return new Integer(--n); + public Enumeration keys() throws JSExn { + return new Enumeration(super.keys()) { + private int n = 0; + public boolean _hasMoreElements() { return n < size(); } + public JS _nextElement() { + return n >= size() ? null : JS.N(n++); } }; }