X-Git-Url: http://git.megacz.com/?p=org.ibex.js.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fjs%2FJSArray.java;h=8e2fdd2cbcc645e63e4e7f0cc09119e163f1bf8b;hp=ae2478fd6fae48fa57f8f77e17fdd451fa922f48;hb=a1e6b7e9307319c0195b0efbe5e5354c128be481;hpb=f637057f12669bb9fe8d76a72e0bfcc898dc0715 diff --git a/src/org/ibex/js/JSArray.java b/src/org/ibex/js/JSArray.java index ae2478f..8e2fdd2 100644 --- a/src/org/ibex/js/JSArray.java +++ b/src/org/ibex/js/JSArray.java @@ -22,12 +22,12 @@ class JSArray extends Basket.Array implements JS, Basket.CompareFunc { return new Enumeration(null) { private int n = 0; public boolean _hasNext() { return n < size(); } - public JS _next() { return Script.N(n++); } + public JS _next() { return JSU.N(n++); } }; } public JS get(JS key) throws JSExn { if (key == null || !(key instanceof JSNumber.I)) { - //#switch(Script.str(key)) + //#switch(JSU.str(key)) case "pop": return METHOD; case "reverse": return METHOD; case "toString": return METHOD; @@ -38,17 +38,17 @@ class JSArray extends Basket.Array implements JS, Basket.CompareFunc { case "push": return METHOD; case "unshift": return METHOD; case "splice": return METHOD; - case "length": return Script.N(size()); + case "length": return JSU.N(size()); //#end - throw new JSExn("arrays only support positive integer keys, can not use: "+Script.str(key)); + throw new JSExn("arrays only support positive integer keys, can not use: "+JSU.str(key)); } return (JS)get(((JSNumber.I)key).toInt()); } public void put(JS key, JS val) throws JSExn { - if (Script.str(key).equals("length")) { setSize(Script.toInt(val)); } + if (JSU.str(key).equals("length")) { setSize(JSU.toInt(val)); } if (key == null || !(key instanceof JSNumber.I)) throw new JSExn( - "arrays only support positive integer keys, can not use: "+Script.str(key)); + "arrays only support positive integer keys, can not use: "+JSU.str(key)); int i = ((JSNumber.I)key).toInt(); if (i < 0) throw new JSExn("arrays can not use negative integer keys "+i); size(i + 1); while (size() < i) add(null); @@ -69,25 +69,25 @@ class JSArray extends Basket.Array implements JS, Basket.CompareFunc { public void pause() throws NotPausableException { throw new NotPausableException(); } public JS call(JS[] args) throws JSExn { throw new JSExn("can not call an array as a function"); } public JS call(JS method, JS[] args) throws JSExn { - //#switch(Script.str(method)) + //#switch(JSU.str(method)) case "pop": return size() == 0 ? null : (JS)remove(size() - 1); - case "push": addAll(args); return Script.N(size()); + case "push": addAll(args); return JSU.N(size()); case "reverse": reverse(); return this; case "toString": return join(","); case "shift": return size() == 0 ? null : (JS)remove(0); - case "join": return join(args.length == 0 ? "," : Script.str(args[0])); + case "join": return join(args.length == 0 ? "," : JSU.str(args[0])); case "sort": return sort(args.length == 0 ? null : args[0]); case "slice": - int start = Script.toInt(args.length < 1 ? null : args[0]); - int end = args.length < 2 ? size() : Script.toInt(args[1]); + int start = JSU.toInt(args.length < 1 ? null : args[0]); + int end = args.length < 2 ? size() : JSU.toInt(args[1]); return slice(start, end); case "unshift": for (int i=0; i < args.length; i++) add(i, args[i]); - return Script.N(size()); + return JSU.N(size()); case "splice": return splice(args); //#end - throw new JSExn("arrays have no function: "+Script.str(method)); + throw new JSExn("arrays have no function: "+JSU.str(method)); } public JS putAndTriggerTraps(JS key, JS val) throws JSExn { put(key, val); return val; } @@ -112,16 +112,16 @@ class JSArray extends Basket.Array implements JS, Basket.CompareFunc { private JS join(String sep) throws JSExn { int length = size(); - if(length == 0) return Script.S(""); + if(length == 0) return JSU.S(""); StringBuffer sb = new StringBuffer(64); int i=0; while(true) { JS o = (JS)get(i); - if(o != null) sb.append(Script.toString(o)); + if(o != null) sb.append(JSU.toString(o)); if(++i == length) break; sb.append(sep); } - return Script.S(sb.toString()); + return JSU.S(sb.toString()); } private JS slice(int start, int end) { @@ -140,8 +140,8 @@ class JSArray extends Basket.Array implements JS, Basket.CompareFunc { private JS splice(JS[] args) throws JSExn { int oldLength = size(); - int start = Script.toInt(args.length < 1 ? null : args[0]); - int deleteCount = Script.toInt(args.length < 2 ? null : args[1]); + int start = JSU.toInt(args.length < 1 ? null : args[0]); + int deleteCount = JSU.toInt(args.length < 2 ? null : args[1]); int newCount = args.length - 2; if(newCount < 0) newCount = 0; if(start < 0) start = oldLength+start; @@ -170,7 +170,7 @@ class JSArray extends Basket.Array implements JS, Basket.CompareFunc { private static final Basket.CompareFunc defaultSort = new Basket.CompareFunc() { public int compare(Object a, Object b) { - try { return Script.toString((JS)a).compareTo(Script.toString((JS)b)); } + try { return JSU.toString((JS)a).compareTo(JSU.toString((JS)b)); } catch (JSExn e) { throw new JSExn.Wrapper(e); } } }; @@ -188,7 +188,7 @@ class JSArray extends Basket.Array implements JS, Basket.CompareFunc { public int compare(Object a, Object b) throws JSExn.Wrapper { try { sortargs[0] = (JS)a; sortargs[1] = (JS)b; - return Script.toInt(sort.call(sortargs)); + return JSU.toInt(sort.call(sortargs)); } catch (JSExn e) { throw new JSExn.Wrapper(e); } finally { sortargs[0] = null; sortargs[1] = null; } }