From 361d18aff8f32e60fb8b6c5c52744a9f1e9890be Mon Sep 17 00:00:00 2001 From: crawshaw Date: Wed, 5 Jan 2005 13:49:38 +0000 Subject: [PATCH] move static function references to Script.java darcs-hash:20050105134938-2eb37-f8e03cd84be502e3e761731a8fbfb4f95695db0f.gz --- src/org/ibex/js/Directory.java | 4 +- src/org/ibex/js/Interpreter.java | 92 ++++++++++++++--------------- src/org/ibex/js/JSArray.java | 4 +- src/org/ibex/js/JSDate.java | 109 +++++++++++++++++----------------- src/org/ibex/js/JSFunction.java | 2 +- src/org/ibex/js/JSMath.java | 64 ++++++++++---------- src/org/ibex/js/JSPrimitive.java | 58 +++++++++--------- src/org/ibex/js/JSReflection.java | 10 ++-- src/org/ibex/js/JSRegexp.java | 90 ++++++++++++++-------------- src/org/ibex/js/Parser.java | 118 ++++++++++++++++++------------------- src/org/ibex/js/SOAP.java | 10 ++-- src/org/ibex/js/Test.java | 26 ++++---- src/org/ibex/js/XMLRPC.java | 8 +-- 13 files changed, 296 insertions(+), 299 deletions(-) diff --git a/src/org/ibex/js/Directory.java b/src/org/ibex/js/Directory.java index 645de0d..07ef38a 100644 --- a/src/org/ibex/js/Directory.java +++ b/src/org/ibex/js/Directory.java @@ -102,7 +102,7 @@ public class Directory extends JS { Reader r = new InputStreamReader(new FileInputStream(f2)); while(true) { int numread = r.read(chars, numchars, chars.length - numchars); - if (numread == -1) return JS.S(new String(chars, 0, numchars)); + if (numread == -1) return Script.S(new String(chars, 0, numchars)); numchars += numread; } } catch (IOException ioe) { @@ -115,7 +115,7 @@ public class Directory extends JS { return new Enumeration(null) { int i = 0; public boolean _hasMoreElements() { return i < elements.length; } - public JS _nextElement() { return JS.S(FileNameEncoder.decode(elements[i++])); } + public JS _nextElement() { return Script.S(FileNameEncoder.decode(elements[i++])); } }; } } diff --git a/src/org/ibex/js/Interpreter.java b/src/org/ibex/js/Interpreter.java index 7bb8bbe..9899a14 100644 --- a/src/org/ibex/js/Interpreter.java +++ b/src/org/ibex/js/Interpreter.java @@ -106,17 +106,17 @@ class Interpreter implements ByteCodes, Tokens, Pausable { } switch(op) { case LITERAL: stack.push((JS)arg); break; - case OBJECT: stack.push(new JS.O()); break; - case ARRAY: stack.push(new JSArray(JS.toInt((JS)arg))); break; + case OBJECT: stack.push(new JS.Obj()); break; + case ARRAY: stack.push(new JSArray(Script.toInt((JS)arg))); break; //case DECLARE: scope.declare((JS)(arg==null ? stack.peek() : arg)); if(arg != null) stack.push((JS)arg); break; - case JT: if (JS.toBoolean(stack.pop())) pc += JS.toInt((JS)arg) - 1; break; - case JF: if (!JS.toBoolean(stack.pop())) pc += JS.toInt((JS)arg) - 1; break; - case JMP: pc += JS.toInt((JS)arg) - 1; break; + case JT: if (Script.toBoolean(stack.pop())) pc += Script.toInt((JS)arg) - 1; break; + case JF: if (!Script.toBoolean(stack.pop())) pc += Script.toInt((JS)arg) - 1; break; + case JMP: pc += Script.toInt((JS)arg) - 1; break; case POP: stack.pop(); break; case SWAP: stack.swap(); break; case DUP: stack.push(stack.peek()); break; case NEWSCOPE: { - int n = JS.toInt((JS)arg); + int n = Script.toInt((JS)arg); scope = new JSScope(scope,(n>>>16)&0xffff,(n>>>0)&0xffff); break; } @@ -124,19 +124,19 @@ class Interpreter implements ByteCodes, Tokens, Pausable { case GLOBALSCOPE: stack.push(scope.getGlobal()); break; case SCOPEGET: stack.push(scope.get((JS)arg)); break; case SCOPEPUT: scope.put((JS)arg,stack.peek()); break; - case ASSERT: if (!JS.toBoolean(stack.pop())) throw je("ibex.assertion.failed"); break; - case BITNOT: stack.push(JS.N(~JS.toLong(stack.pop()))); break; - case BANG: stack.push(JS.B(!JS.toBoolean(stack.pop()))); break; + case ASSERT: if (!Script.toBoolean(stack.pop())) throw je("ibex.assertion.failed"); break; + case BITNOT: stack.push(Script.N(~Script.toLong(stack.pop()))); break; + case BANG: stack.push(Script.B(!Script.toBoolean(stack.pop()))); break; case NEWFUNCTION: stack.push(((JSFunction)arg)._cloneWithNewParentScope(scope)); break; case LABEL: break; case TYPEOF: { Object o = stack.pop(); if (o == null) stack.push(null); - else if (o instanceof JSString) stack.push(JS.S("string")); - else if (o instanceof JSNumber.B) stack.push(JS.S("boolean")); - else if (o instanceof JSNumber) stack.push(JS.S("number")); - else stack.push(JS.S("object")); + else if (o instanceof JSString) stack.push(Script.S("string")); + else if (o instanceof JSNumber.B) stack.push(Script.S("boolean")); + else if (o instanceof JSNumber) stack.push(Script.S("number")); + else stack.push(Script.S("object")); break; } @@ -166,7 +166,7 @@ class Interpreter implements ByteCodes, Tokens, Pausable { if (o instanceof LoopMarker) { if (arg == null || arg.equals(((LoopMarker)o).label)) { int loopInstructionLocation = ((LoopMarker)o).location; - int endOfLoop = JS.toInt((JS)f.arg[loopInstructionLocation]) + loopInstructionLocation; + int endOfLoop = Script.toInt((JS)f.arg[loopInstructionLocation]) + loopInstructionLocation; scope = ((LoopMarker)o).scope; if (op == CONTINUE) { stack.push(o); stack.push(JS.F); } pc = op == BREAK ? endOfLoop - 1 : loopInstructionLocation; @@ -200,7 +200,7 @@ class Interpreter implements ByteCodes, Tokens, Pausable { boolean didTrapPut = false; if (o instanceof TrapMarker) { // handles return component of a write trap TrapMarker tm = (TrapMarker) o; - boolean cascade = tm.t.isWriteTrap() && !tm.cascadeHappened && !JS.toBoolean(retval); + boolean cascade = tm.t.isWriteTrap() && !tm.cascadeHappened && !Script.toBoolean(retval); if(cascade) { JS.Trap t = tm.t.nextWrite(); if(t == null && tm.t.target() instanceof JS.Clone) { @@ -236,7 +236,7 @@ class Interpreter implements ByteCodes, Tokens, Pausable { } case CASCADE: { - boolean write = JS.toBoolean((JS)arg); + boolean write = Script.toBoolean((JS)arg); JS val = write ? stack.pop() : null; CallMarker o = stack.findCall(); if(!(o instanceof TrapMarker)) throw new JSExn("tried to CASCADE while not in a trap"); @@ -312,8 +312,8 @@ class Interpreter implements ByteCodes, Tokens, Pausable { stack.push(key); } JS ret = null; - if (key == null) throw je("tried to get the null key from " + JS.debugToString(target)); - if (target == null) throw je("tried to get property \"" + JS.debugToString(key) + "\" from the null object"); + if (key == null) throw je("tried to get the null key from " + Script.str(target)); + if (target == null) throw je("tried to get property \"" + Script.str(key) + "\" from the null object"); JS.Trap t = target.getTrap(key); if(t != null) t = t.read(); @@ -421,13 +421,13 @@ class Interpreter implements ByteCodes, Tokens, Pausable { JS left = (JS)stack.pop(); JS ret; if(left instanceof JSString || right instanceof JSString) - ret = JS.S(JS.toString(left).concat(JS.toString(right))); + ret = Script.S(Script.toString(left).concat(Script.toString(right))); else if(left instanceof JSNumber.D || right instanceof JSNumber.D) - ret = JS.N(JS.toDouble(left) + JS.toDouble(right)); + ret = Script.N(Script.toDouble(left) + Script.toDouble(right)); else { - long l = JS.toLong(left) + JS.toLong(right); - if(l < Integer.MIN_VALUE || l > Integer.MAX_VALUE) ret = JS.N(l); - ret = JS.N((int)l); + long l = Script.toLong(left) + Script.toLong(right); + if(l < Integer.MIN_VALUE || l > Integer.MAX_VALUE) ret = Script.N(l); + ret = Script.N((int)l); } stack.push(ret); } else { @@ -435,27 +435,27 @@ class Interpreter implements ByteCodes, Tokens, Pausable { while(--count >= 0) args[count] = (JS)stack.pop(); if(args[0] instanceof JSString) { StringBuffer sb = new StringBuffer(64); - for(int i=0;i> JS.toLong(right))); break; - case URSH: stack.push(JS.N(JS.toLong(left) >>> JS.toLong(right))); break; + case LSH: stack.push(Script.N(Script.toLong(left) << Script.toLong(right))); break; + case RSH: stack.push(Script.N(Script.toLong(left) >> Script.toLong(right))); break; + case URSH: stack.push(Script.N(Script.toLong(left) >>> Script.toLong(right))); break; //#repeat />= LT/LE/GT/GE case LT: { if(left instanceof JSString && right instanceof JSString) - stack.push(JS.B(JS.toString(left).compareTo(JS.toString(right)) < 0)); + stack.push(Script.B(Script.toString(left).compareTo(Script.toString(right)) < 0)); else - stack.push(JS.B(JS.toDouble(left) < JS.toDouble(right))); + stack.push(Script.B(Script.toDouble(left) < Script.toDouble(right))); } //#end @@ -495,7 +495,7 @@ class Interpreter implements ByteCodes, Tokens, Pausable { if(left == null && right == null) ret = true; else if(left == null || right == null) ret = false; else ret = left.jsequals(right); - stack.push(JS.B(op == EQ ? ret : !ret)); break; + stack.push(Script.B(op == EQ ? ret : !ret)); break; } default: throw new Error("unknown opcode " + op); @@ -671,7 +671,7 @@ class Interpreter implements ByteCodes, Tokens, Pausable { if(cm.f == null) break; String s = cm.f.sourceName + ":" + cm.f.line[cm.pc-1]; if(cm instanceof Interpreter.TrapMarker) - s += " (trap on " + JS.debugToString(((Interpreter.TrapMarker)cm).t.key) + ")"; + s += " (trap on " + Script.str(((Interpreter.TrapMarker)cm).t.key) + ")"; e.addBacktrace(s); } } diff --git a/src/org/ibex/js/JSArray.java b/src/org/ibex/js/JSArray.java index cb06d0d..ae2478f 100644 --- a/src/org/ibex/js/JSArray.java +++ b/src/org/ibex/js/JSArray.java @@ -112,7 +112,7 @@ class JSArray extends Basket.Array implements JS, Basket.CompareFunc { private JS join(String sep) throws JSExn { int length = size(); - if(length == 0) return JS.S(""); + if(length == 0) return Script.S(""); StringBuffer sb = new StringBuffer(64); int i=0; while(true) { @@ -121,7 +121,7 @@ class JSArray extends Basket.Array implements JS, Basket.CompareFunc { if(++i == length) break; sb.append(sep); } - return JS.S(sb.toString()); + return Script.S(sb.toString()); } private JS slice(int start, int end) { diff --git a/src/org/ibex/js/JSDate.java b/src/org/ibex/js/JSDate.java index 203fdc5..b90da68 100644 --- a/src/org/ibex/js/JSDate.java +++ b/src/org/ibex/js/JSDate.java @@ -61,62 +61,62 @@ public class JSDate extends JS.Immutable { public JS call(JS method, JS[] args) throws JSExn { switch(args.length) { case 0: { - //#switch(JS.toString(method)) - case "toString": return JS.S(date_format(date, FORMATSPEC_FULL)); - case "toTimeString": return JS.S(date_format(date, FORMATSPEC_TIME)); - case "toDateString": return JS.S(date_format(date, FORMATSPEC_DATE)); - case "toLocaleString": return JS.S(toLocaleString(date)); - case "toLocaleTimeString": return JS.S(toLocaleTimeString(date)); - case "toLocaleDateString": return JS.S(toLocaleDateString(date)); - case "toUTCString": return JS.S(toUTCString(date)); - case "valueOf": return N(this.date); - case "getTime": return N(this.date); - case "getYear": return N(getYear(date)); - case "getFullYear": return N(YearFromTime(LocalTime(date))); - case "getUTCFullYear": return N(YearFromTime(date)); - case "getMonth": return N(MonthFromTime(LocalTime(date))); - case "getUTCMonth": return N(MonthFromTime(date)); - case "getDate": return N(DateFromTime(LocalTime(date))); - case "getUTCDate": return N(DateFromTime(date)); - case "getDay": return N(WeekDay(LocalTime(date))); - case "getUTCDay": return N(WeekDay(date)); - case "getHours": return N(HourFromTime(LocalTime(date))); - case "getUTCHours": return N(HourFromTime(date)); - case "getMinutes": return N(MinFromTime(LocalTime(date))); - case "getUTCMinutes": return N(MinFromTime(date)); - case "getSeconds": return N(SecFromTime(LocalTime(date))); - case "getUTCSeconds": return N(SecFromTime(date)); - case "getMilliseconds": return N(msFromTime(LocalTime(date))); - case "getUTCMilliseconds": return N(msFromTime(date)); - case "getTimezoneOffset": return N(getTimezoneOffset(date)); + //#switch(Script.toString(method)) + case "toString": return Script.S(date_format(date, FORMATSPEC_FULL)); + case "toTimeString": return Script.S(date_format(date, FORMATSPEC_TIME)); + case "toDateString": return Script.S(date_format(date, FORMATSPEC_DATE)); + case "toLocaleString": return Script.S(toLocaleString(date)); + case "toLocaleTimeString": return Script.S(toLocaleTimeString(date)); + case "toLocaleDateString": return Script.S(toLocaleDateString(date)); + case "toUTCString": return Script.S(toUTCString(date)); + case "valueOf": return Script.N(this.date); + case "getTime": return Script.N(this.date); + case "getYear": return Script.N(getYear(date)); + case "getFullYear": return Script.N(YearFromTime(LocalTime(date))); + case "getUTCFullYear": return Script.N(YearFromTime(date)); + case "getMonth": return Script.N(MonthFromTime(LocalTime(date))); + case "getUTCMonth": return Script.N(MonthFromTime(date)); + case "getDate": return Script.N(DateFromTime(LocalTime(date))); + case "getUTCDate": return Script.N(DateFromTime(date)); + case "getDay": return Script.N(WeekDay(LocalTime(date))); + case "getUTCDay": return Script.N(WeekDay(date)); + case "getHours": return Script.N(HourFromTime(LocalTime(date))); + case "getUTCHours": return Script.N(HourFromTime(date)); + case "getMinutes": return Script.N(MinFromTime(LocalTime(date))); + case "getUTCMinutes": return Script.N(MinFromTime(date)); + case "getSeconds": return Script.N(SecFromTime(LocalTime(date))); + case "getUTCSeconds": return Script.N(SecFromTime(date)); + case "getMilliseconds": return Script.N(msFromTime(LocalTime(date))); + case "getUTCMilliseconds": return Script.N(msFromTime(date)); + case "getTimezoneOffset": return Script.N(getTimezoneOffset(date)); //#end return super.call(method, args); } case 1: { - //#switch(JS.toString(method)) - case "setTime": return N(this.setTime(toDouble(a0))); - case "setYear": return N(this.setYear(toDouble(a0))); + //#switch(Script.toString(method)) + case "setTime": return Script.N(this.setTime(Script.toDouble(args[0]))); + case "setYear": return Script.N(this.setYear(Script.toDouble(args[0]))); //#end // fall through } default: { JS[] args = new JS[nargs]; for(int i=0; i= 1 ? JS.toInt(arg0) : 0; - int b = alength >= 2 ? JS.toInt(arg1) : slength; + int a = alength >= 1 ? Script.toInt(arg0) : 0; + int b = alength >= 2 ? Script.toInt(arg1) : slength; if (a > slength) a = slength; if (b > slength) b = slength; if (a < 0) a = 0; if (b < 0) b = 0; if (a > b) { int tmp = a; a = b; b = tmp; } - return JS.S(s.substring(a,b)); + return Script.S(s.substring(a,b)); } case "substr": { - int start = alength >= 1 ? JS.toInt(arg0) : 0; - int len = alength >= 2 ? JS.toInt(arg1) : Integer.MAX_VALUE; + int start = alength >= 1 ? Script.toInt(arg0) : 0; + int len = alength >= 2 ? Script.toInt(arg1) : Integer.MAX_VALUE; if (start < 0) start = slength + start; if (start < 0) start = 0; if (len < 0) len = 0; if (len > slength - start) len = slength - start; - if (len <= 0) return JS.S(""); - return JS.S(s.substring(start,start+len)); + if (len <= 0) return Script.S(""); + return Script.S(s.substring(start,start+len)); } case "charAt": { - int p = alength >= 1 ? JS.toInt(arg0) : 0; - if (p < 0 || p >= slength) return JS.S(""); - return JS.S(s.substring(p,p+1)); + int p = alength >= 1 ? Script.toInt(arg0) : 0; + if (p < 0 || p >= slength) return Script.S(""); + return Script.S(s.substring(p,p+1)); } case "charCodeAt": { - int p = alength >= 1 ? JS.toInt(arg0) : 0; - if (p < 0 || p >= slength) return JS.N(Double.NaN); - return JS.N(s.charAt(p)); + int p = alength >= 1 ? Script.toInt(arg0) : 0; + if (p < 0 || p >= slength) return Script.N(Double.NaN); + return Script.N(s.charAt(p)); } case "concat": { StringBuffer sb = new StringBuffer(slength*2).append(s); @@ -55,42 +55,42 @@ class JSPrimitive extends JS.Immutable { return Script.S(sb.toString()); } case "indexOf": { - String search = alength >= 1 ? JS.toString(arg0) : "null"; - int start = alength >= 2 ? JS.toInt(arg1) : 0; + String search = alength >= 1 ? Script.toString(arg0) : "null"; + int start = alength >= 2 ? Script.toInt(arg1) : 0; // Java's indexOf handles an out of bounds start index, it'll return -1 - return JS.N(s.indexOf(search,start)); + return Script.N(s.indexOf(search,start)); } case "lastIndexOf": { - String search = alength >= 1 ? JS.toString(arg0) : "null"; - int start = alength >= 2 ? JS.toInt(arg1) : 0; + String search = alength >= 1 ? Script.toString(arg0) : "null"; + int start = alength >= 2 ? Script.toInt(arg1) : 0; // Java's indexOf handles an out of bounds start index, it'll return -1 - return JS.N(s.lastIndexOf(search,start)); + return Script.N(s.lastIndexOf(search,start)); } case "match": return JSRegexp.stringMatch(this,arg0); case "replace": return JSRegexp.stringReplace(this,arg0,arg1); case "search": return JSRegexp.stringSearch(this,arg0); case "split": return JSRegexp.stringSplit(this,arg0,arg1,alength); - case "toLowerCase": return JS.S(s.toLowerCase()); - case "toUpperCase": return JS.S(s.toUpperCase()); + case "toLowerCase": return Script.S(s.toLowerCase()); + case "toUpperCase": return Script.S(s.toUpperCase()); case "slice": { - int a = alength >= 1 ? JS.toInt(arg0) : 0; - int b = alength >= 2 ? JS.toInt(arg1) : slength; + int a = alength >= 1 ? Script.toInt(arg0) : 0; + int b = alength >= 2 ? Script.toInt(arg1) : slength; if (a < 0) a = slength + a; if (b < 0) b = slength + b; if (a < 0) a = 0; if (b < 0) b = 0; if (a > slength) a = slength; if (b > slength) b = slength; - if (a > b) return JS.S(""); - return JS.S(s.substring(a,b)); + if (a > b) return Script.S(""); + return Script.S(s.substring(a,b)); } //#end return super.call(method, args); } public JS get(JS key) throws JSExn { - //#switch(JS.toString(key)) - case "length": return JS.N(JS.toString(this).length()); + //#switch(Script.toString(key)) + case "length": return Script.N(Script.toString(this).length()); case "substring": return METHOD; case "charAt": return METHOD; case "charCodeAt": return METHOD; diff --git a/src/org/ibex/js/JSReflection.java b/src/org/ibex/js/JSReflection.java index a1db9a8..4d6ec04 100644 --- a/src/org/ibex/js/JSReflection.java +++ b/src/org/ibex/js/JSReflection.java @@ -14,9 +14,9 @@ public class JSReflection extends JS { public static JS wrap(Object o) throws JSExn { if (o == null) return null; - if (o instanceof String) return JS.S((String)o); - if (o instanceof Boolean) return JS.B(((Boolean)o).booleanValue()); - if (o instanceof Number) return JS.N((Number)o); + if (o instanceof String) return Script.S((String)o); + if (o instanceof Boolean) return Script.B(((Boolean)o).booleanValue()); + if (o instanceof Number) return Script.N((Number)o); if (o instanceof JS) return (JS)o; if (o instanceof Object[]) { // FIXME: get element type here @@ -33,7 +33,7 @@ public class JSReflection extends JS { private int n = 0; public boolean _hasMoreElements() { return n < arr.length; } public JS _nextElement() { - return n >= arr.length ? null : JS.N(n++); + return n >= arr.length ? null : Script.N(n++); } }; } @@ -84,7 +84,7 @@ public class JSReflection extends JS { } catch (InvocationTargetException it) { Throwable ite = it.getTargetException(); if (ite instanceof JSExn) throw ((JSExn)ite); - JS.warn(ite); + Script.warn(ite); throw new JSExn("unhandled reflected exception: " + ite.toString()); } catch (SecurityException nfe) { } throw new JSExn("called a reflection method with the wrong number of arguments"); diff --git a/src/org/ibex/js/JSRegexp.java b/src/org/ibex/js/JSRegexp.java index a987921..40afb01 100644 --- a/src/org/ibex/js/JSRegexp.java +++ b/src/org/ibex/js/JSRegexp.java @@ -24,10 +24,10 @@ public class JSRegexp extends JS.Immutable { this.pattern = r.pattern; this.flags = r.flags; } else { - String pattern = JS.toString(arg0); + String pattern = Script.toString(arg0); String sFlags = null; int flags = 0; - if(arg1 != null) sFlags = JS.toString(arg1); + if(arg1 != null) sFlags = Script.toString(arg1); if(sFlags == null) sFlags = ""; for(int i=0;i= s.length()) { lastIndex = 0; return null; } GnuRegexp.REMatch match = re.getMatch(s,start); @@ -56,7 +56,7 @@ public class JSRegexp extends JS.Immutable { return match == null ? null : matchToExecResult(match,re,s); } case "test": { - String s = JS.toString(a0); + String s = Script.toString(a0); if (!global) return B(re.getMatch(s) != null); int start = global ? lastIndex : 0; if(start < 0 || start >= s.length()) { lastIndex = 0; return null; } @@ -64,19 +64,19 @@ public class JSRegexp extends JS.Immutable { lastIndex = match != null ? s.length() : match.getEndIndex(); return B(match != null); } - case "toString": return JS.S(args[0].coerceToString()); + case "toString": return Script.S(args[0].coerceToString()); //#end break; } case 2: { - //#switch(JS.str(method)) + //#switch(Script.str(method)) case "stringMatch": return stringMatch(args[0], args[1]); case "stringSearch": return stringSearch(args[0], args[1]); //#end break; } case 3: { - //#switch(JS.str(method)) + //#switch(Script.str(method)) case "stringReplace": return stringReplace(args[0], args[1], args[2]); //#end break; @@ -86,23 +86,23 @@ public class JSRegexp extends JS.Immutable { } public JS get(JS key) throws JSExn { - //#switch(JS.str(key)) + //#switch(Script.str(key)) case "exec": return METHOD; case "test": return METHOD; case "toString": return METHOD; - case "lastIndex": return JS.N(lastIndex); + case "lastIndex": return Script.N(lastIndex); case "source": return pattern; - case "global": return JS.B(global); - case "ignoreCase": return JS.B(flags & GnuRegexp.RE.REG_ICASE); - case "multiline": return JS.B(flags & GnuRegexp.RE.REG_MULTILINE); + case "global": return Script.B(global); + case "ignoreCase": return Script.B(flags & GnuRegexp.RE.REG_ICASE); + case "multiline": return Script.B(flags & GnuRegexp.RE.REG_MULTILINE); //#end return super.get(key); } public void put(JS key, JS value) throws JSExn { - if(JS.isString(key)) { - if(JS.toString(key).equals("lastIndex")) { - lastIndex = JS.toInt(value); + if(Script.isString(key)) { + if(Script.toString(key).equals("lastIndex")) { + lastIndex = Script.toInt(value); return; } } @@ -112,12 +112,12 @@ public class JSRegexp extends JS.Immutable { private static JS matchToExecResult(GnuRegexp.REMatch match, GnuRegexp.RE re, String s) { try { JS ret = new JS.Obj(); - ret.put(JS.S("index"), JS.N(match.getStartIndex())); - ret.put(JS.S("input"), JS.S(s)); + ret.put(Script.S("index"), Script.N(match.getStartIndex())); + ret.put(Script.S("input"), Script.S(s)); int n = re.getNumSubs(); - ret.put(JS.S("length"), JS.N(n+1)); - ret.put(ZERO,JS.S(match.toString())); - for(int i=1;i<=n;i++) ret.put(JS.N(i),JS.S(match.toString(i))); + ret.put(Script.S("length"), Script.N(n+1)); + ret.put(Script.ZERO, Script.S(match.toString())); + for(int i=1;i<=n;i++) ret.put(Script.N(i),Script.S(match.toString(i))); return ret; } catch (JSExn e) { throw new Error("this should never happen"); @@ -137,14 +137,14 @@ public class JSRegexp extends JS.Immutable { private static final JS[] execarg = new JS[1]; static JS stringMatch(JS o, JS arg0) throws JSExn { - String s = JS.toString(o); + String s = Script.toString(o); GnuRegexp.RE re; JSRegexp regexp = null; if(arg0 instanceof JSRegexp) { regexp = (JSRegexp) arg0; re = regexp.re; } else { - re = newRE(JS.toString(arg0),0); + re = newRE(Script.toString(arg0),0); } if(regexp == null) { @@ -153,25 +153,25 @@ public class JSRegexp extends JS.Immutable { } try { execarg[0] = o; - if(!regexp.global) return regexp.call(JS.S("exec"), execarg); + if(!regexp.global) return regexp.call(Script.S("exec"), execarg); } finally { execarg[0] = null; } GnuRegexp.REMatch[] matches = re.getAllMatches(s); JSArray ret = new JSArray(matches.length); - for(int i=0;i 0 ? matches[matches.length-1].getEndIndex() : s.length(); return ret; } static JS stringSearch(JS o, JS arg0) throws JSExn { - String s = JS.toString(o); - GnuRegexp.RE re = arg0 instanceof JSRegexp ? ((JSRegexp)arg0).re : newRE(JS.toString(arg0),0); + String s = Script.toString(o); + GnuRegexp.RE re = arg0 instanceof JSRegexp ? ((JSRegexp)arg0).re : newRE(Script.toString(arg0),0); GnuRegexp.REMatch match = re.getMatch(s); - return match == null ? JS.N(-1) : JS.N(match.getStartIndex()); + return match == null ? Script.N(-1) : Script.N(match.getStartIndex()); } static JS stringReplace(JS o, JS arg0, JS arg1) throws JSExn { - String s = JS.toString(o); + String s = Script.toString(o); GnuRegexp.RE re; JSFunction replaceFunc = null; String replaceString = null; @@ -185,7 +185,7 @@ public class JSRegexp extends JS.Immutable { if(arg1 instanceof JSFunction) replaceFunc = (JSFunction) arg1; else - replaceString = JS.toString(arg1); + replaceString = Script.toString(arg1); GnuRegexp.REMatch[] matches; if(regexp != null && regexp.global) { matches = re.getAllMatches(s); @@ -214,15 +214,15 @@ public class JSRegexp extends JS.Immutable { int n = (regexp == null ? 0 : re.getNumSubs()); int numArgs = 3 + n; JS[] args = new JS[3 + n]; - args[0] = JS.S(match.toString()); + args[0] = Script.S(match.toString()); args[1] = null; args[2] = null; - for(int j=1;j<=n;j++) args[j] = JS.S(match.toString(j)); - args[args.length - 2] = JS.N(match.getStartIndex()); - args[args.length - 1] = JS.S(s); + for(int j=1;j<=n;j++) args[j] = Script.S(match.toString(j)); + args[args.length - 2] = Script.N(match.getStartIndex()); + args[args.length - 1] = Script.S(s); // note: can't perform pausing operations in here - sb.append(JS.toString(replaceFunc.call(args))); + sb.append(Script.toString(replaceFunc.call(args))); } else { sb.append(mySubstitute(match,replaceString,s)); @@ -230,7 +230,7 @@ public class JSRegexp extends JS.Immutable { } int end = matches.length == 0 ? 0 : matches[matches.length-1].getEndIndex(); sb.append(sa,end,sa.length-end); - return JS.S(sb.toString()); + return Script.S(sb.toString()); } private static String mySubstitute(GnuRegexp.REMatch match, String s, String source) { @@ -276,8 +276,8 @@ public class JSRegexp extends JS.Immutable { static JS stringSplit(JS s_, JS arg0, JS arg1, int nargs) throws JSExn { - String s = JS.toString(s_); - int limit = nargs < 2 ? Integer.MAX_VALUE : JS.toInt(arg1); + String s = Script.toString(s_); + int limit = nargs < 2 ? Integer.MAX_VALUE : Script.toInt(arg1); if(limit < 0) limit = Integer.MAX_VALUE; if(limit == 0) return new JSArray(0); @@ -291,7 +291,7 @@ public class JSRegexp extends JS.Immutable { regexp = (JSRegexp) arg0; re = regexp.re; } else { - sep = JS.toString(arg0); + sep = Script.toString(arg0); } // special case this for speed. additionally, the code below doesn't properly handle @@ -299,7 +299,7 @@ public class JSRegexp extends JS.Immutable { if(sep != null && sep.length()==0) { int len = s.length(); for(int i=0;i\n"); JSArray a = (JSArray)o; for(int i=0; i\n"); Enumeration e = j.keys(); -- 1.7.10.4