X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2Fjs%2FJSArray.java;h=c918bda3dfda26a17d930ecc8fff89ba09993327;hb=8c1756ef3fd42cc2f324baf47e13a83f51045efe;hp=880e64fecc5b14806d570cba53b46ca37ae9a8aa;hpb=67eeff476179a91ae930ea89cbecde22132ca532;p=org.ibex.core.git diff --git a/src/org/xwt/js/JSArray.java b/src/org/xwt/js/JSArray.java index 880e64f..c918bda 100644 --- a/src/org/xwt/js/JSArray.java +++ b/src/org/xwt/js/JSArray.java @@ -22,49 +22,62 @@ public class JSArray extends JSCallable { return Integer.parseInt(s); } - public Object call(Object method, JSArray args) { - if(method.equals("push")) { - for(int i=0;i 0) { - Object o = vec.elementAt(0); - vec.removeElementAt(0); - return o; - } else { - return null; - } - } - if(method.equals("unshift")) { - // FEATURE: could be optimized a bit with some help from Vec - for(int i=0;i=0;i--) - vec.addElement(oldVec.elementAt(i)); + for(int i=size-1;i>=0;i--) vec.addElement(oldVec.elementAt(i)); return this; } - private Object slice(JSArray args) { + private Object slice(int start, int end) { int length = length(); - int start = JS.toInt(args.length() < 1 ? null : args.elementAt(0)); - int end = args.length() < 2 ? length : JS.toInt(args.elementAt(1)); if(start < 0) start = length+start; if(end < 0) end = length+end; if(start < 0) start = 0; @@ -145,8 +151,7 @@ public class JSArray extends JSCallable { return JS.toString(a).compareTo(JS.toString(b)); } }; - private Object sort(JSArray args) { - Object tmp = args.length() < 1 ? null : args.elementAt(0); + private Object sort(Object tmp) { if(tmp instanceof JSCallable) { final JSArray funcArgs = new JSArray(2); final JSCallable jsFunc = (JSCallable) tmp; @@ -154,7 +159,7 @@ public class JSArray extends JSCallable { public int compare(Object a, Object b) { funcArgs.setElementAt(a,0); funcArgs.setElementAt(b,1); - return JS.toInt(jsFunc.call(null, funcArgs)); + return JS.toInt(jsFunc.call(a, b, null, null, 2)); } }); } else {